sql 有金额code 比如01 02 03 有人数 code 比如 a01 a02 a03 需要在sql中用金额除以对应的人数 获得计算出的金额
时间: 2023-12-14 13:37:01 浏览: 79
可以使用 CASE WHEN 和 SUM 函数实现这个需求,具体的 SQL 语句如下:
```
SELECT
amount_code,
SUM(
CASE person_code
WHEN 'a01' THEN 1
WHEN 'a02' THEN 2
WHEN 'a03' THEN 3
ELSE 0
END
) AS total_persons,
SUM(
CASE person_code
WHEN 'a01' THEN amount
WHEN 'a02' THEN amount
WHEN 'a03' THEN amount
ELSE 0
END
) /
SUM(
CASE person_code
WHEN 'a01' THEN 1
WHEN 'a02' THEN 2
WHEN 'a03' THEN 3
ELSE 0
END
) AS calculated_amount
FROM
your_table
GROUP BY
amount_code
```
其中,`amount_code` 和 `person_code` 分别代表金额和人数的编码字段,`amount` 代表金额字段。在 CASE WHEN 子句中,通过判断 `person_code` 的值来决定该记录的人数和金额是否需要计算,最终通过 SUM 函数求和得到总人数和总金额,再将总金额除以总人数得到计算出的金额。最后通过 GROUP BY 对不同的金额编码进行分组,得到每个金额对应的计算出的金额。