多个分组依据以进行表查询

时间:2019-04-27 17:34:21

标签: sql sql-server

我有一张这样的桌子:

    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

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

感谢您的帮助

1 个答案:

答案 0 :(得分:4)

您可以在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等)的列除外。