mysql - 组递归 1:M 关系
问题描述
我有一个带有递归 1:M 的表
每个客户可能都被以前的客户推荐过,现在我想对推荐过的客户进行分组,这样我就可以显示哪些客户推荐的次数最多。
我想要一个给出以下输出的查询
我试过了
SELECT count(*) AS Count_of_referrals, referral_id
FROM Customer
GROUP BY referral_id
它给出了每个referrer_id 被提及的次数,但我找不到将其链接回推荐他们的实际客户的方法。
感谢我能在这里得到的任何帮助.. :-)
解决方案
嗯,你很接近了。您只需要自行加入customer
表格即可获得其中name
的内容referral_id
。
SELECT c1.referral_id,
c2.name,
count(*) count_of_referrals
FROM customer c1
INNER JOIN customer c2
ON c2.customer_id = c1.referral_id
GROUP BY c1.referral_id,
c2.name;
推荐阅读
- java - 在使用另一个微服务时获得空响应?
- xml - 使用 XmlParser().parseText(xml_file) 从 XML 文件中提取值到 Jenkinsfile 管道
- python - SWIG 生成的 Python 函数注释不起作用
- python-3.x - 使用 setuptools(setup.py) 在主模块之外添加文件夹和子文件夹
- javascript - 加载时我需要显示和获取图像大小
- elasticsearch - Elasticsearch,集群性能比单主机服务器差吗?
- javafx - 类 Circle 中的构造函数 Circle 不能应用于给定类型
- r - 如何使用 R 运行双循环
- amazon-web-services - 如何在 AWS SQS 中查看特定日期收到的消息?(或者今天最后一次收到)
- amazon-web-services - 移动应用程序中的 AWS AccessKeyId 和 SecretKey