mysql - 在一个查询中同时使用 GROUP BY 和 ORDER BY

标签 mysql sql group-by sql-order-by

有人告诉我不能在一个 MySQL 查询中使用 GROUP BY 和 ORDER BY。这是查询的缩写版本 -

SELECT n.colorName, n.colorComp, n.colorID, SUM(n.gallons) AS TotalGallons
FROM netTran n, Store m, Product p
WHERE ((n.store = m.store) and m.state = "FL")
AND ((n.salesNbr = p.salesNbr) AND (p.intExt = "EXTERIOR" OR p.intExt = "INT/EXT"))
AND ((n.clrnt1 = "L1") AND (n.clrnt1 = "R3"))
GROUP BY n.colorComp, n.colorID
ORDER BY TotalGallons DESC;

有人告诉我,将 ORDER BY 与 GROUP BY 结合使用会得到不同的结果,并且 ORDER BY 工作的唯一方法是将主查询嵌套在

SELECT * FROM
(query)
ORDER BY TotalGallons DESC;

对吗?

最佳答案


使用查询作为

SELECT n.colorName, n.colorComp, n.colorID, SUM(n.gallons) AS     TotalGallons
FROM netTran n, Store m, Product p
WHERE ((n.store = m.store) and m.state = "FL")
AND ((n.salesNbr = p.salesNbr) AND (p.intExt = "EXTERIOR" OR p.intExt = "INT/EXT"))
AND ((n.clrnt1 = "L1") AND (n.clrnt1 = "R3"))
GROUP BY n.colorName, n.colorComp,n.colorID
ORDER BY TotalGallons DESC;

您可以在单个查询中使用分组依据和排序依据。但是如果要聚合列,则需要提供所有列

关于mysql - 在一个查询中同时使用 GROUP BY 和 ORDER BY,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39536347/

相关文章:

mysql - MySQL 5.5.9 的奇怪外键问题

php - 处理带有时间戳的大型 csv 文件

mysql - 创建过程 MySQL

c# - 使用 SQL Server、EF6 保存静态列表的最佳方法

c# - 以编程方式将新用户插入到 aspnet 成员资格架构中

django - 如何使用 django annotate() 和 aggregate() 对查询集进行分组?

Mysql 使用 group by 和 case when 进行查询

php - MYSQL查询 - 检查单列字符串中范围之间的整数

ruby-on-rails-3 - Ruby on Rails 使用 PostgreSQL 进行计数和分组

sql - 为什么 EXCEPT 不起作用? except 一词附近的语法不正确