首页 > 解决方案 > 表查询的多个分组依据

问题描述

我有一张这样的桌子:

    Month     Type        Price    
    ============================
    1          a           12     
    2          b           43
    1          a           11
    4          c           22
    1          b           33
    2          c           4
    3          a           25
    2          b           35
    4          c           20

我想得到一个结果如下的查询:

    Month     Type     Total Price    
    ============================
    1          a           23     
    1          b           33
    2          b           78
    2          c           4
    3          a           25
    4          c           44

意思是:价格是一个月内特殊类型的总价格。

例如,我们在“1”月和“3”中输入“a”,“1”月“a”的总价格为 23,“3”月为 25

我认为我们应该使用多个分组依据。我可以仅按类型或月份对其进行分组,但不能同时按两者进行分组。

谢谢你的帮助

标签: sqlsql-server

解决方案


您可以在 GROUP BY 子句中指定表达式列表

SELECT  Month, Type, SUM(Price) AS [Total Price]
FROM MyTable
GROUP BY Month, Type
ORDER BY Month, Type

在 GROUP BY 中,列出所有涉及的列,但应用了聚合函数(SUM、MIN、MAX、AVG 等)的列除外。


推荐阅读