标题很难说,但问题很简单。我在这里搜索过,找不到我特定问题的内容,所以在这里。我正在使用Microsoft SQL Server Management Studio 2010。
表目前看起来像这样
| Value | Product Name|
| 300 | Bike |
| 400 | Bike |
| 300 | Car |
| 300 | Car |
我需要表格向我显示产品名称匹配的值的总和 - 像这样
| TOTAL | ProductName |
| 700 | Bike |
| 600 | Car |
我尝试过一个简单的
SELECT
SUM(Value) AS 'Total'
,ProductName
FROM TableX
但上述方法无效。我最终获得了列中所有值的总和。如何根据产品名称进行求和?
谢谢!
答案 0 :(得分:15)
SELECT SUM(Value) AS 'Total', [Product Name]
FROM TableX
GROUP BY [Product Name]
答案 1 :(得分:4)
无论何时使用聚合函数(SUM
,MIN
,MAX
...)和SELECT
语句中的列,都必须使用{{1 }}。这是一个组函数,指示将聚合分组到哪个列。此外,任何不在聚合中的列都不能出现在GROUP BY
语句中。
例如,以下语法无效,因为您指定了SELECT
中不存在的列(col2
)(即使MySQL允许这样做):
GROUP BY
您问题的解决方案是:
SELECT col1, col2, SUM(col3)
FROM table
GROUP BY col1