我有一个表,它存储与之关联的名称和数字。这些数字中的每一个都是某种类型。名称和类型的组合是独一无二的。
name | type | number
---------------------
a | t0 | 5
a | t1 | 6
b | t0 | 7
c | t1 | 8
我希望这张表作为结果,显示与该名称相关的数字,无论累积的类型如何。
name | sum
------------
a | 11
c | 8
b | 7
现在我知道了SUM()
函数,到目前为止我写了这个:
SELECT name, SUM( ??SELECT name, SUM(number) WHERE name = 'a'?? ) AS sum
FROM table
ORDER BY sum DESC;
问题是我不知道如何编写SUM()
函数的内部部分,因为我不能在函数内部使用SELECT
语句。另外,我不知道如何迭代名称列的可能值。
答案 0 :(得分:1)
您需要使用GROUP BY
和SUM
:
SELECT name, SUM(number) AS sum
FROM tableName
GROUP BY name
ORDER BY SUM(number) DESC; -- or ORDER BY sum DESC; - it is identical
答案 1 :(得分:1)
SELECT NAME,
Sum(number) As 'Sum'
FROM table
GROUP BY NAME
ORDER BY Sum(number) DESC;