在SELECT语句中,对查询结果进行排序的子句是什么?能消除重复行的关键字是什么
在SELECT语句中,对查询结果进行排序的子句是having子句。进行排序的子句是orderby,消除重复行的关键字是DISTINCT子句。
Having和Where作用是相近的,只不是一个用于普通字段的限定,而Having是用于对聚合后结果的限定。例:
select pname,count(*) as cnt from ar where count(*) >1 group by pname 是错误的,正确的应该是select pname,count(*) as cnt from ar group by pname having count(*) >1
HAVING 子句与 WHERE 子句类似,但只应用于作为一个整体的组(即应用于在结果集中表示组的行),而 WHERE 子句应用于个别的行。查询可同时包含 WHERE 子句和 HAVING 子句。
扩展资料
group By和order by having用法和区别:
GROUP BY(分组):必须配合聚合函数一起使用,使用时至少需要一个分组标志字段。
重点:使用GROUP BY的查询语句的时候,选择后面的所有列中,没有使用聚合函数的列,必须出现在GROUP BY 后面:
SELECT 部门,COUNT(id)FROM学生组BY 部门
例如:这条sql,如果部门没有跟在由后面这句语法是错误的。
聚合函数:
-COUNT:统计行数量:
SELECT部门,COUNT(id)FROM学生组BY部门。
OEDER BY:就是行的排序方式,默认的为升序。后面必须列出排序的字段名,可以是多个字段名。