【发布时间】:2021-04-13 18:34:06
【问题描述】:
在下面的示例中,我使用代码创建“总计”列。我只想保留总数最高的每个 ID 的记录。所以记录 3 和 4 应该是输出表中的唯一结果。
SELECT ID, ObsPer, col1, col2, col3, SUM(col1,col2,col3) AS total
FROM mytable
由于“total”是一个计算字段,我如何添加一个只为每个“ID”带回最高“total”值的命令。
我是这个东西的新手,所以如果我解释得不够好,请原谅!
| ID | ObsPer | col1 | col2 | col3 | total |
|---|---|---|---|---|---|
| 1 | 201903 01 | 3 | 4 | 2 | 9 |
| 1 | 201903 02 | 7 | 4 | 4 | 15 |
| 1 | 201903 03 | 6 | 4 | 9 | 19 |
| 2 | 201904 01 | 6 | 2 | 9 | 17 |
| 2 | 201904 02 | 4 | 2 | 5 | 11 |
| 2 | 201904 03 | 3 | 2 | 2 | 7 |
我认为它可能是 WHERE 或 HAVING 命令,但我尝试过的总是出错。
预期结果
| ID | ObsPer | col1 | col2 | col3 | total |
|---|---|---|---|---|---|
| 1 | 201903 03 | 6 | 4 | 9 | 19 |
| 2 | 201904 01 | 6 | 2 | 9 | 17 |
【问题讨论】:
-
您对
SUM()的使用令人困惑。您没有聚合查询,它不合适。