Подсчитать количество измененных объектов для разных пользователей
Всем привет, вопрос такой, как мне подсчитать количество измененных объектов (obj_type) для каждого пользователя (user), где event_type = 2 и obj_id не дублируется для user?
Имеется таблица такого вида:
| event_type | user | obj_type | obj_id |
|---|---|---|---|
| 2 | Василий Васильев | 2 | 2000 |
| 2 | Василий Васильев | 2 | 2000 |
| 2 | Василий Васильев | 2 | 2000 |
| 2 | Василий Васильев | 2 | 2001 |
| 2 | Василий Васильев | 4 | 4000 |
| 2 | Владимир Владимиров | 1 | 1000 |
| 2 | Владимир Владимиров | 4 | 4000 |
| 2 | Петр Петров | 3 | 3000 |
| 2 | Петр Петров | 3 | 3000 |
Вот какой результат необходим:
| user | Count obj_type 1 | Count obj_type 2 | Count obj_type 3 | Count obj_type 4 |
|---|---|---|---|---|
| Василий Васильев | 0 | 2 | 0 | 1 |
| Владимир Владимиров | 1 | 0 | 0 | 1 |
| Петр Петров | 0 | 0 | 1 | 0 |
Имеется такой запрос, но он работает только если нет повторных obj_id, в противном случае он просто посчитает все obj_type для этого user
SELECT
user,
sl_name,
`len`,
count(case when obj_type=1 then 1 end) as "countCouple",
count(case when obj_type=2 then 1 end) as "countBoxPon",
count(case when obj_type=3 then 1 end) as "countOpticCross",
count(case when obj_type=4 then 1 end) as "countNode"
FROM logObj
WHERE event_type = 1
GROUP BY user, sl_name
Количество типов объектов(obj_type) - фиксированное