我有一个包含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
如何编写查询来执行此操作?
答案 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
使用别名但是......