我有一个带有客户ID的mysql表,并由客户发布各种类别。我想按降序查找每个类别的客户帖子数。
Customer id Category no
1 1
2 1
3 1
1 1
1 2
1 1
2 1
基本上在上表中,客户ID 1的最高帖子为1,然后是2,然后是3。 那么我应该使用什么mysql查询来获得解决方案。
我非常感谢任何帮助。谢谢你。
答案 0 :(得分:1)
SELECT customer_id, COUNT(*) FROM category GROUP BY customer_id, category_no
按您的2栏分组
答案 1 :(得分:1)
这将为您提供按类别和客户分组的类别表中的帖子条目数,并按照其排序顺序排列:
select customer_id, category_no, count(1) as total_post
from category
group by customer_id, category_no
order by count(1) desc;
答案 2 :(得分:1)
要获得每个类别的最高贡献客户,您可以这样做:
select category_no, max(cnt) as maxcnt,
substring_index(group_concat(customer_id order by cnt desc)) as cust3
from (select category_no, customer_id, count(*) as cnt
from category
group by category_no, customer_id
) c
group by category_no;