对于新手来说,不太容易分清楚 ORDER BY
和 GROUP BY
的区别,其实从字面意思就可以理解。
ORDER BY
是排序,准确的说是对某个或某几个字段的值进行排序,ASC
是升序,DESC
是降序,默认为升序。
GROUP BY
是分组,准确的说是对某个字段相等的值为一组的聚合分组,聚合函数一般有:COUNT()
、SUM()
、AVG()
、MAX()
、MIN()
等几种。
ORDER BY
和 GROUP BY
单独使用都比较简单,那两者如何同时使用呢?
比如有这样一个场景,一个新闻网站需要统计今天评论数的 TOP 10
,就可以使用如下 SQL
语句:
SELECT COUNT(*) FROM news_comment GROUP BY comment_id ORDER BY COUNT(*) DESC LIMIT 10;