如何在MySQL中找到多个列计数

时间:2018-02-23 11:45:31

标签: mysql

我有一个名为Tag Lists的MySQL表

字段为list_id,person_id,company_id

id | List_id | Person_id | Company_id
-------------------------------------
1  | L1      | P1        | C1
2  | L1      | P2        | C1
3  | L1      | p3        | C3
4  | L2      | P4        | C4
5  | L2      | P5        | C5

如何获得类似下面的输出。这在单个MySQL查询中是否可行?

id | List_id | Person_count | Company_count
-------------------------------------------
1  | L1      | 3            | 2
2  | L2      | 2            | 2

在单列上使用普通组我可以找到列表的person_count或company_count。

Select list_id, count(person_id) from tag_lists group by list_id

3 个答案:

答案 0 :(得分:2)

你试过这个:

Select list_id, count(distinct person_id),count(distinct Company_id) from tag_lists group by list_id

答案 1 :(得分:1)

尝试以下查询:

Select list_id, count(Distinct person_id), count(Distinct Company_id) 
from tag_lists 
group by list_id

答案 2 :(得分:1)

您可以使用DISTINCT和两个COUNT()方法:

SE list_id, COUNT(DISTINCT person_id), COUNT(DISTINCT company_id) FROM tag_lists GROUP BY list_id

这样你就可以获得所需的输出。我没有测试过这个。