[英]How write sql query group by?
分组依据用于识别数据集群中的计数、最大值、最小值、平均值等。 更清楚地说,例如您有包含制造、颜色、价格字段的 Cars 表。 并且您想查看不同颜色的汽车数量(这将是不同颜色的集群),您可以使用以下查询
按颜色从汽车组中选择计数(1),颜色;
输出将如下所示
蓝3
灰色 17
红5
注意:您在 group by 中使用的任何列也将在选择列中使用。 在上面的例子中,如果添加更多字段,我使用颜色分组,例如 make 它将有两个 cluster(color,make) 输出将是
福特蓝 3
福特灰色 7
本田红5
本田灰色 10
因此,您可以在对数据(如计数、最小值、最大值、平均值、排名等)进行分组之前确定需要执行的函数。如果您想要选择子句中的所有字段,则必须使用分析函数。 使用示例数据和预期输出编辑您的问题,如果需要,我也可以通过分析查询为您提供答案。
感谢您编辑您的问题示例数据会更清楚,但我仍然会继续我的理解。 我在这里使用分析函数作为解决方案
Select artgrpid,description,descid,relgroupid,
artdeptid,default,name,brand,questions,
ROW_NUMBER() over (Prtition by artdeptid order by artdeptid) from
artgrp;
您可以使用 rank() 或 count(1) 等代替 ROW_NUMBER()。
SELECT d.description, d.lifetime, d.name, COUNT(d.artdeptid) as Departments
FROM artgrp g INNER JOIN arddept d ON g.artdeptid = d.artdeptid
WHERE regroudid = "11"
GROUP BY d.description, d.lifetime, d.name
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.