【发布时间】:2020-12-12 22:39:33
【问题描述】:
我想根据标志计算订单的总和。 示例表:
+--------------+---------------+---------------+
| Order | Flag | Amount |
+--------------+---------------+---------------+
| Order1 | Yes | 500 |
| Order1 | Yes | 325 |
| Order2 | Yes | 799 |
| Order2 | No | 550 |
| Order2 | Yes | 675 |
| Order3 | No | 800 |
+--------------+---------------+---------------+
我想创建 2 个新列。
一栏是订单总额,另一栏是订单总额,其中标志为“是”。
上例表中想要的结果:
+--------------+---------------+---------------+---------------+---------------+
| Order | Flag | Amount | TotalAmount | Yes_amount |
+--------------+---------------+---------------+---------------+---------------+
| Order1 | Yes | 500 | 825 | 825 |
| Order1 | Yes | 325 | 825 | 825 |
| Order2 | Yes | 799 | 2024 | 1474 |
| Order2 | No | 550 | 2024 | 1474 |
| Order2 | Yes | 675 | 2024 | 1474 |
| Order3 | No | 800 | 800 | 0 |
+--------------+---------------+---------------+---------------+---------------+
我已尝试使用以下代码获取 TotalAmount 列:
SUM(AMOUNT) OVER (PARTITION BY ORDER) AS TOTAL_AMOUNT.
有人可以帮我处理 Yes_amount 列吗?
【问题讨论】:
标签: sql sql-server tsql sum window-functions