对来自不同 table 的 AGGREGATE SUM 执行 LEFT JOIN
Performing LEFT JOIN on an AGGREGATE SUM from a different table
我有两个 tables(缺陷,sort_data),我想对它们执行聚合总和和左连接的组合以显示所有缺陷名称,从sort_data 中的最高数量总和,还包括 sort_data table 中不存在的缺陷。见下文。
defects
defect_name
-----------
Snapped
Cracked
Melted
Warped
Other
sort_data
defect_name |qty
----------------
Snapped |5
Cracked |1
Snapped |15
Snapped |10
Melted |2
Desired results:
Snapped
Melted
Cracked
Other
Warped
我可以使用总和从 sort_data 创建列表的一部分:
SELECT sort_data.defect_name, sum(qty)
FROM sort_data
GROUP BY sort_data.defect_name
ORDER BY sum(qty)
我相信我还需要像这样的左连接:
SELECT *
from defects
LEFT OUTER JOIN sort_data on sort_data.defect_name = defects.defect_name
我不确定如何将两者结合起来。帮助将不胜感激。谢谢。
使用左连接
SELECT defect.defect_name, sum(sort_data.qty)
FROM defect
LEFT JOIN sort_data on sort_data.defect_name = defects.defect_name
GROUP BY sort_data.defect_name
ORDER BY sum(sort_data.qty);
我有两个 tables(缺陷,sort_data),我想对它们执行聚合总和和左连接的组合以显示所有缺陷名称,从sort_data 中的最高数量总和,还包括 sort_data table 中不存在的缺陷。见下文。
defects
defect_name
-----------
Snapped
Cracked
Melted
Warped
Other
sort_data
defect_name |qty
----------------
Snapped |5
Cracked |1
Snapped |15
Snapped |10
Melted |2
Desired results:
Snapped
Melted
Cracked
Other
Warped
我可以使用总和从 sort_data 创建列表的一部分:
SELECT sort_data.defect_name, sum(qty)
FROM sort_data
GROUP BY sort_data.defect_name
ORDER BY sum(qty)
我相信我还需要像这样的左连接:
SELECT *
from defects
LEFT OUTER JOIN sort_data on sort_data.defect_name = defects.defect_name
我不确定如何将两者结合起来。帮助将不胜感激。谢谢。
使用左连接
SELECT defect.defect_name, sum(sort_data.qty)
FROM defect
LEFT JOIN sort_data on sort_data.defect_name = defects.defect_name
GROUP BY sort_data.defect_name
ORDER BY sum(sort_data.qty);