sql中添加group by
时间: 2023-11-12 16:49:46 浏览: 75
group by用法.doc
group by 是一种在 SQL 中常用的用于对查询结果进行分组的操作。通过使用 group by,我们可以根据一个或多个列对结果进行分组,并对每个组应用聚合函数,如sum、count、avg等。
在 SQL 中,有多种方式可以使用 group by 进行分组。其中包括 rollup 和 cube 两种扩展语法。使用 rollup 可以创建分组的层次结构,计算各个层次的小计和合计。而使用 cube 可以列出所有可能的分组,并计算每个分组的聚合值。
例如,使用 rollup 可以按照 fruit_name 和 fruit_type 进行分组,并计算每个分组的小计和合计:
SELECT CASE WHEN Grouping(c.fruit_name) Grouping(c.fruit_type) = 2 THEN '合计' WHEN Grouping(c.fruit_name) = 1 THEN '小计' ELSE c.fruit_name END fruit_name,
CASE WHEN Grouping(c.fruit_name) Grouping(c.fruit_type) = 2 THEN '合计' WHEN Grouping(c.fruit_type) = 1 THEN '小计' ELSE c.fruit_type END fruit_type
FROM Al_fruit c
GROUP BY ROLLUP(c.fruit_name, c.fruit_type)
使用 cube 则可以得到所有可能的分组情况:
SELECT CASE WHEN Grouping(c.fruit_name) Grouping(c.fruit_type) = 2 THEN '合计' WHEN Grouping(c.fruit_name) = 1 THEN '小计' ELSE c.fruit_name END fruit_name,
CASE WHEN Grouping(c.fruit_name) Grouping(c.fruit_type) = 2 THEN '合计' WHEN Grouping(c.fruit_type) = 1 THEN '小计' ELSE c.fruit_type END fruit_type
FROM Al_fruit c
GROUP BY CUBE(c.fruit_name, c.fruit_type)
请提出其他
阅读全文