mysql - 将每个选定的行乘以某个值,然后在单个查询中对所有内容求和
问题描述
我有一张桌子,看起来像这样:
我想计算 100 名成人和 20 名儿童的门票总价。我不知道如何添加多个 WHERE 来选择正确的行进行计算。到目前为止,我有类似的东西
SELECT
Fee * 100 AS adult,
Fee * 20 AS child,
sum(*)
FROM fees
WHERE adult.Type = 'adult' AND adult.Clubname = 'aquapark'
WHERE child.Type = 'child' AND child.Clubname = 'aquapark';
在这种情况下,我希望输出为 110 000。
感谢您的任何帮助!
解决方案
听起来您可以使用条件聚合。
SELECT sum(CASE type
WHEN 'adult' THEN
fee * 200
WHEN 'Child' THEN
fee * 50
ELSE
0
END)
FROM fees
WHERE clubname = 'aquapark';
推荐阅读
- javascript - 过滤包含表的表的行
- xml - 如何输出状态数据?
- java - 在 Android/data/package-name 上保存数据有什么限制?
- php - 启用 Memcached 后,codeigniter 中出现与会话相关的未知错误
- java - 如何更改图像位深?
- spring - 使用@value将bean值注入属性不起作用
- java - Java Stream lifecycle callbacks
- google-bigquery - BigQuery - WITH 语句 - 在后面的子查询中引用 WHERE 条件中的早期子查询
- python - PIP 升级会影响什么?
- android - 如何使用 SVG 创建动画