在SQL中按另一列分组时,获取一列的SUM

时间:2012-04-10 17:37:12

标签: sql

我有一个包含3个字段的表

ID  Tax   State
0   .50   TX
1   .25   TX
2   .25   AZ
3   .25   AZ
4   .1    AL

我想为每个州提取税款。

Tax   State
.75   TX
.5    AZ
.1    AL

如何编写查询来执行此操作?

1 个答案:

答案 0 :(得分:17)

这是一个非常基本的SUM()聚合。我建议你阅读你的RDBMS'有关聚合函数和GROUP BY的文档,因为这是非常基础的。

SELECT
  SUM(Tax) AS sumtax,
  State
FROM table
GROUP BY State
/* Looks like you want descending order */
ORDER BY SUM(Tax) DESC

请注意,某些RDBMS(例如MySQL)允许您在ORDER BY中使用列别名,如下所示:

ORDER BY sumtax DESC

...其他人(如果我没记错的话,就像SQL Server一样)不会,你也必须在那里使用聚合值。

编辑: 我刚检查过,实际上SQL Server似乎确实允许ORDER BY中的别名。很确定你不能在GROUP BY使用别名但是......