You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL如何实现打印总张数除以墨粉更换次数计算单盒平均打印量

实现方案

你可以把两个查询作为子查询关联后做除法计算即可,SQL写法如下:

SELECT 
    t1.device_id,
    t1.paper_count,
    t2.`Change Count`,
    ROUND(t1.paper_count / t2.`Change Count`, 0) AS Average
FROM 
    (SELECT DISTINCT toner.device_id, printer.paper_count 
     FROM toner 
     JOIN printer ON printer.device_id = toner.device_id) t1
INNER JOIN 
    (SELECT device_id, COUNT(toner_color) AS 'Change Count' 
     FROM toner 
     WHERE toner_color = 'Black' 
     GROUP BY device_id) t2
ON t1.device_id = t2.device_id;

补充说明

  • 两个原始查询分别作为临时表t1(存储设备总打印张数)和t2(存储黑色墨粉更换次数),按device_id字段关联
  • 如果需要保留没有更换过黑色墨粉的设备,可以把INNER JOIN换成LEFT JOIN,同时增加逻辑处理除数为0的异常避免报错,示例调整如下:
ROUND(t1.paper_count / IFNULL(t2.`Change Count`, 1), 0) AS Average
  • 上述代码用ROUND函数把结果取整,和你给出的输出示例格式一致,如果需要保留小数可以调整该函数的第二个参数数值。

内容的提问来源于stack exchange,提问作者P3X-774

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 09:09:01