Как найти несколько столбцов в MySQL

0

У меня есть таблица 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
  • 0
    Что-то не так с использованием COUNT дважды? SELECT list_id, COUNT(person_id), COUNT(company_id) FROM tag_lists GROUP BY list_id
Теги:

3 ответа

1
Лучший ответ

Вы можете использовать DISTINCT и два метода COUNT():

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

Таким образом, вы должны получить желаемый результат. Я не проверял это.

2

Вы пробовали это:

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

Попробуйте выполнить следующий запрос:

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню