gpt4 book ai didi

mysql - MySQL如何获取每一列的总数

转载 作者:太空宇宙 更新时间:2023-11-03 10:43:17 24 4
gpt4 key购买 nike

我有一个 SQL 查询,可以获取不同公司的职位数量、毛重等。

MySQL Workbench 中的结果如下所示: enter image description here

我想在底部添加另一行来计算每列的总数,即工作列的总数为 267。如何为总数添加额外的一行?

SQL查询:

select
c.Name,
COUNT(distinct jn.ID) as Jobs,
SUM(jn.ActualWeight) as GrossWt,
SUM(jpc.AdvisedQty) AS Units_In,
SUM(jpd.AdvisedQty) AS Units_Out
FROM customer c
LEFT JOIN job_new jn ON jn.JobOwnerID = c.ID
LEFT JOIN job_pieces jp ON jp.JobID = jn.ID
LEFT JOIN job_pieces jpc ON jpc.JobID = jn.ID AND jn.CollectMemberID = jn.JobOwnerID
LEFT JOIN job_pieces jpd ON jpd.JobID = jn.ID AND jn.DeliverMemberID = jn.JobOwnerID
WHERE jn.IsActive = 1 GROUP BY jn.JobOwnerID

最佳答案

您正在寻找 GROUP BY 修饰符 WITH ROLLUP :

select c.Name,
COUNT(distinct jn.ID) as Jobs,
SUM(jn.ActualWeight) as GrossWt,
SUM(jpc.AdvisedQty) AS Units_In,
SUM(jpd.AdvisedQty) AS Units_Out
FROM customer c LEFT JOIN
job_new jn
ON jn.JobOwnerID = c.ID LEFT JOIN
job_pieces jp
ON jp.JobID = jn.ID LEFT JOIN
job_pieces jpc
ON jpc.JobID = jn.ID AND jn.CollectMemberID = jn.JobOwnerID LEFT JOIN
job_pieces jpd
ON jpd.JobID = jn.ID AND jn.DeliverMemberID = jn.JobOwnerID
WHERE jn.IsActive = 1
GROUP BY c.Name WITH ROLLUP;

注意:出于两个原因,我还更改了 GROUP BY 键。首先,它确实应该与 SELECT 中使用的列相匹配。其次,您使用的是 LEFT JOINed 表中的值,因此该值可能为 NULL。这通常是不可取的。

关于mysql - MySQL如何获取每一列的总数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35036630/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com