我有一个简单的表:user(id, date, task)
任务字段包含“下载”或“上传”
我想计算出每天执行每个操作的用户数量。
输出:日期、下载用户数、上传用户数
我首先遇到了在 select 的聚合计数函数中使用子查询的问题,所以我认为我应该在这里使用自连接来分解“任务”列中的数据。
我以为我可以为每个案例创建表格,然后合并这些表格并进行计数,但我无法完成这个:
SELECT id, date, task 作为task_download 来自用户 WHERE 任务 = '下载'
SELECT id, date, task 作为 task_upload 来自用户 WHERE 任务 = '上传'
最佳答案
select `date`,
COUNT( distinct CASE WHEN task = 'download' then id end ) 'download',
COUNT( distinct CASE WHEN task = 'upload' then id end ) 'upload'
from user
group by `date`
关于mysql - SQL:联合或自连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43020720/