У меня есть две таблицы
пользователей:
+------------+-----------+
| user_id | company |
+------------+-----------+
| 1 | Apple |
| 2 | Apple |
| 3 | Microsoft |
+------------+-----------+
сессий:
+------------+---------+
| session_id | user_id |
+------------+---------+
| 1 | 1 |
| 2 | 3 |
| 3 | 1 |
+------------+---------+
Я хочу запросить обе таблицы в одном запросе и получить вывод, который выглядиткак это:
+------------+--------------+--------------+
| company | totalUsers | activeUsers |
+------------+--------------+--------------+
| Apple | 2 | 1 |
| Microsoft | 1 | 1 |
+------------+--------------+--------------+
с таким запросом:
SELECT users.company, COUNT(users.user_id) as totalUsers,
COUNT(DISTINCT(CASE WHEN COUNT(sessions.session_id) > 0
then sessions.user_id end)) as activeUsers
FROM users
LEFT OUTER JOIN sessions ON users.user_id = sessions.user_id
GROUP BY users.company_name
Запрос выдает ошибки.Я знаю, что счетчик activeUsers неверен, но не могу понять, как его организовать.Кроме того, добавив LEFT OUTER JOIN, я получаю неправильный результат для totalUsers, я думаю, он начинает считать сессии как пользователи
Есть идеи?