首页 > 数据库 > SQL Server >

SQL—DML—GROUP BY与ORDER BY比较

2011-09-15

GROUP BY与ORDER BY,一个是分组,一个是排序,这是我自己的第一反应。ORDER BY 与GROUP BYORDER BYGROUP BY排序产生的输出分组行。但输出可能不是分组的顺序任意列都可以使用(甚至非选择的列也可以使用)...

GROUP BY与ORDER BY,一个是分组,一个是排序,这是我自己的第一反应。

ORDER BY 与GROUP BY

ORDER BY

GROUP BY

排序产生的输出

分组行。但输出可能不是分组的顺序

任意列都可以使用(甚至非选择的列也可以使用)

只可能使用选择列或表达式列,而且必须使用每个选择列表达式

不一定需要

如果与聚集函数一起使用列(或表达式),则必须使用

第一项比较重要,经常发现用GROUP BY分组的数据确实是以分组顺序输出的,但不总是这样,而且用户可能会要求以不同的顺序排序。

一般在使用GROUP BY子句时,应该也给出ORDER BY子句,这是保证数据正确排序的唯一方法。千万不要仅依赖GROUP BY排序数据。

例:

view plaincopy to clipboardprint?SELECT order_num,COUNT(*) AS items
FROM OrderItems
GROUP BY order_num
HAVING COUNT(*)>=3
ORDER BY items,order_num;
SELECT order_num,COUNT(*) AS items
FROM OrderItems
GROUP BY order_num
HAVING COUNT(*)>=3
ORDER BY items,order_num;


作者“只是记录一下每天的学习笔记”

相关文章
最新文章
热点推荐