gpt4 book ai didi

mysql - 使用 count 和 group_concat 编写 SQL 代码

转载 作者:行者123 更新时间:2023-11-29 11:38:08 25 4
gpt4 key购买 nike

我已经阅读了所有标题相似的帖子,但没有找到正确的答案。
我真正需要做的是从 MySQL 表中计算一些数据,然后执行 group_concat 因为我得到了不止一行。
我的 table 是这样的
enter image description here
这是我尝试运行查询的方式

SELECT 
count(cal.day) * 8,
w.name
FROM claim as c
RIGHT JOIN calendar as cal ON c.id = cal.claim_id
RIGHT JOIN worker as w ON c.worker_id = w.id
GROUP BY c.id
ORDER BY w.name asc

但是我为某些工作人员获取了不止一行,并且由于 count() 而无法对它们进行 group_concat。我需要这个用于我制作的 mysql 程序,所以如果可以的话请帮助我。
我希望我已经给你提供了足够的信息

为迪伦编辑:

查看输出的差异
按 w.id 分组
enter image description here

按 c.id 分组
enter image description here

最佳答案

MySQL 不允许同时使用两个聚合函数,例如 GROUP_CONCAT(COUNT(...))

因此,我们可以使用子查询来解决,如下所示。

SELECT
GROUP_CONCAT(t.cnt_cal_day) as cnt_days,
t.name
FROM
(
SELECT
count(cal.day) * 8 as cnt_cal_day,
w.name
FROM claim as c
RIGHT JOIN calendar as cal ON c.id = cal.claim_id
RIGHT JOIN worker as w ON c.worker_id = w.id
GROUP BY c.id
ORDER BY w.name asc
) t

关于mysql - 使用 count 和 group_concat 编写 SQL 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36282660/

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