gpt4 book ai didi

MySQL - 根据总产品对用户群进行分组

转载 作者:行者123 更新时间:2023-11-29 11:09:23 26 4
gpt4 key购买 nike

如何根据总产品对用户进行分组

用户表

id    name
-- ----
1 abc
2 def
3 ghi

用户产品表

id   user_id   product
-- ------- --------
1 1 abcd
1 1 efgh
1 1 ijkl
1 2 mnop
1 2 qrst
1 3 uvwx
1 3 yxab

加入 user_table 和 user_product_table 后,我会得到

user   total_product
---- -------------
abc 3
def 2
ghi 2

带有count(*)group by的简单sql user_product_table.user

但是,我的预期结果是

user        total_product
---- -------------
abc 3
def, ghi 2

我可能有 10000 多个记录,我确信很多用户都有相同的总产品,我需要根据用户的总产品对用户进行分组

最佳答案

您的查询按预期工作并给出正确的结果。如果您想将具有相同数量产品的用户分组在一起,您可以在 mysql 中执行此操作。但是,如果您有这么多记录,那么当total_product = 2 或total_product=3 时,该列表将有多长。这有道理吗?

无论如何。为此,只需将您的查询(不幸的是您没有给出)包装到另一个查询中即可。

我猜这是您现有的查询:

SELECT u.name, COUNT(p.id) as total_products
FROM user_table u
JOIN user_product_table p ON p.user_id=u.id

现在我们按名称对其进行分组

SELECT GROUP_CONCAT(a.name) as names, a.total_products
FROM (
SELECT u.name, COUNT(p.id) as total_products
FROM user_table u
JOIN user_product_table p ON p.user_id=u.id
) as a
GROUP BY a.total_products

请注意,GROUP_CONCAT 列只会显示一定数量的文本。如果连接的名称较长,则可能会丢失一些名称。

关于MySQL - 根据总产品对用户群进行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40870332/

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