mysql - SQL:如何按计数除列?
问题描述
所以我有这个查询
SELECT distinct toner.device_id, printer.paper_count from toner
join printer on printer.device_id = toner.device_id;
这将打印类似
设备ID | 纸张数 |
---|---|
1 | 5000 |
2 | 10000 |
我还有另一个查询,它将返回根据某个日期更改碳粉的次数。我用count来计算它被改变的次数。
select device_id, count(toner_color) as 'Change Count' from toner where
toner_color = 'Black' group by device_id;
这将打印类似
设备ID | 更改计数 |
---|---|
1 | 2 |
2 | 2 |
我想要得到的是 1 个墨水罐打印的平均纸张数量,例如 5000 张纸/2 个黑色墨水罐 = 2500。
所以我想得到这样的东西
设备ID | 纸张数 | 更改计数 | 平均 |
---|---|---|---|
1 | 5000 | 2 | 2500 |
2 | 10000 | 2 | 5000 |
解决方案
会group by p.device_id, p.paper_count
,同时过滤where toner_color = 'Black'
:
select p.device_id, p.paper_count, count(toner_color) as 'Change Count'
, round(p.paper_count / count(toner_color)) as 'Average'
from toner t join printer p on p.device_id = t.device_id
where toner_color = 'Black'
group by p.device_id, p.paper_count;
DB Fiddle上的 MySQL v.8.0
推荐阅读
- javascript - 如何通过在下拉列表中选择项目来检索文本框中的数据库值
- python - 如何限制 python pandas 数据框中的操作区域?
- html - Button :focus 样式在手机上不起作用?
- c# - NServiceBus 升级大版本策略
- docker - Jenkinsfile - 构建代理问题
- r - R help - 在特定条件下更改每一行的最大值
- python - 通过在 Python 中删除旧的条形图,用新的条形图替换现有的条形图
- laravel-5.2 - 如何在 laravel 5.2 中生成全新的迁移
- python - Django 规则对象权限
- drupal - 如何在 drupal 8 上设置文件使用情况?