如何计算SQL中临时列的总和?
问题描述:
我有这样的代码:如何计算SQL中临时列的总和?
SELECT
ID,
name,
result,
CASE
WHEN result = 1 THEN 100
WHEN result = 2 THEN 80
ELSE NULL
END AS TemporaryColumn
FROM MyTable
这是表:
| ID | Name | result | TemporaryColumn |
----------------------------------------
| 1 | A | 1 | 100 |
----------------------------------------
| 2 | B | 1 | 100 |
----------------------------------------
| 3 | C | 2 | 80 |
----------------------------------------
| 1 | A | 2 | 80 |
----------------------------------------
| 2 | B | 1 | 100 |
----------------------------------------
| 3 | C | 2 | 80 |
----------------------------------------
我要找到每一个ID的总和(),和表应该是这样的:
| ID | Name | result | TemporaryColumn |
----------------------------------------
| 1 | A | 1 | 180 |
----------------------------------------
| 2 | B | 1 | 200 |
----------------------------------------
| 3 | C | 2 | 160 |
----------------------------------------
我该如何查询?
答
如何像
SELECT
ID,
name,
result,
SUM(
CASE
WHEN result = 1 THEN 100
WHEN result = 2 THEN 80
ELSE NULL
END
) AS TemporaryColumn
FROM MyTable
GROUP BY ID,
name
不要ethough的result
列不能保证从我可以告诉,这是不是唯一的,可能应该从选择列表中排除。
,如果是这样的话,你将不得不使用
SELECT
ID,
name,
SUM(
CASE
WHEN result = 1 THEN 100
WHEN result = 2 THEN 80
ELSE NULL
END
) AS TemporaryColumn
FROM MyTable
GROUP BY ID,
name
感谢你非常非常astander。 – user3287124