gpt4 book ai didi

mysql group_concat 里面有一个计数?

转载 作者:行者123 更新时间:2023-11-29 15:22:15 27 4
gpt4 key购买 nike

我有 2 个表、用户和关注者。下面的表有一个名为 status 的列。我想计算每个用户按状态分组有多少关注者。

下面的查询返回每个用户的每种状态类型的记录。

SELECT users.name as user_name, f.status, count(f.id) 
FROM users
JOIN application_follows f ON f.user_id = users.id
GROUP BY users.id, f.status
ORDER BY users.id

返回类似:

user_name     status     count

mike new 10
mike old 5
tom new 8
tom old 9

但我想要一些更友好的东西,例如:

user_name     status_count

mike new,10|old,5
tom new,8|old,9

尝试使用 group_concat 和 count 但没有成功。有什么线索吗?

最佳答案

您需要使用 GROUP BY 两次,首先使用下面的 (user_id, status) 来获取计数,然后使用连接表中的 user_id 来连接:

SELECT users.name, GROUP_CONCAT( CONCAT(f.status, ',', f.cnt) SEPARATOR '|' )
FROM users
JOIN
( SELECT user_id, status, count(id) AS cnt
FROM application_follows
GROUP BY user_id, status ) f
ON f.user_id = users.id
GROUP BY users.id

关于mysql group_concat 里面有一个计数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59310321/

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