Например, у меня есть таблица с записями пользовательских действий по просмотру и загрузке файлов,
file_id user activity
2 Tim view
1 Ron view
1 Ron view
2 Tim download
2 Ron view
1 Ron view
2 Ron download
Идеальный результат выбора такой,
file_id viewed_by views downloaded_by downloads
1 1 3 0 0
2 2 2 2 2
Что я могу сделать, так это получать данные о просмотрах и загружать данные в 2 независимых запроса,
COUNT(*), COUNT(DISTINCT user)
FROM table
WHERE activity = 'view'
GROUP BY file_id
(and then do another query for downloads)
Возможно ли сделать это в одном запросе или с помощью подзапроса?