У меня есть это представление, полученное в результате множественного объединения:
project_id | document_type_id
10 | 2
10 | 2
10 | 3
10 | 1
10 | 1
10 | 1
11 | 2
11 | 2
11 | 2
11 | 2
11 | 3
11 | 3
метка для 1: "обзор"
метка для 2: "интервью"
меткадля 3: "роман"
Я уже получил эту таблицу:
project_id | review | interview | romance
10 | OK | OK | OK
11 | NO | OK | OK
, используя следующую инструкцию запроса:
SELECT `project_id`, `document_type_id`,
MAX(CASE WHEN `document_type_id` = 1 THEN "OK" ELSE "NO" END) as "review",
MAX(CASE WHEN `document_type_id` = 2 THEN "OK" ELSE "NO" END) as "interview",
MAX(CASE WHEN `document_type_id` = 3 THEN "OK" ELSE "NO" END) as "romance"
FROM projectDocumentList
GROUP BY project_id
Теперь мне нужно подсчитать каждыйтип документа в каждом поле таблицы:
project_id | review | interview | romance
10 | 3 | 2 | 1
11 | 0 | 4 | 2
Я пытался и пытался, но не могу найти правильный синтаксис для получения этого результата.Некоторые из моих предыдущих попыток ...
COUNT(MAX(CASE WHEN `document_type_id` = 1 THEN "1" ELSE "NO" END)) as "review"
MAX(CASE WHEN `document_type_id` = 1 THEN (SELECT COUNT(`document_type_id`)) ELSE "NO" END) as "review"
COUNT(DISTINCT(MAX(CASE WHEN `document_type_id` = 1 THEN `document_type_id` ELSE "NO" END)) as "review"
Есть идеи по этому поводу?Благодарю.V.