mysql - SQL:联合或自连接

标签 mysql sql

我有一个简单的表: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/

相关文章:

php - 在网站上使用分页搜索功能

mysql - 如何 'Create a table based on a query and delete from first 3 characters to the right'

mysql - 如何编写以下sql查询

javascript - 模态如何从图像中获取数据?

mysql联合还是加入?

MySql 重用 WHERE 子句的别名

mysql - 在 mysql 表中选择每个工作室所有最赚钱的电影

mysql - 从 MYSQL DB 中搜索电话号码

php - 如何在zend-framework 2的页脚中显示动态数据

sql - 如何统计某个日期范围内的数据库元素?