【发布时间】:2016-01-16 23:09:28
【问题描述】:
在 mysql 中创建这个查询有点麻烦。我想我遗漏了一些明显的东西。
我有一个用户表,其中有一列称为设备(Android、iOs、Windows 是 3 个可能的值)。我想创建一个报告,告诉我每天有多少用户注册(按日期分组),但每个设备(每列的总数)。
我能够进行查询,告诉我有多少用户注册为第一列的总数,但无法让子查询在接下来的几列中工作。
现在我尝试的工作查询是这样的:
SELECT COUNT(u.userid) 'Total Users', date(u.datecreated) 'Day'
FROM Users
GROUP BY date(u.datecreated)
ORDER BY u.datecreated DESC
这为我生成了一个很好的汇总报告,显示了每天创建的用户数(总数是一列,总数的日期是第二列)
所以扩展上面的工作查询,我尝试创建一个像这样的子查询,但它不断产生“1”作为新列的结果。
select count(distinct u.userid) 'Total Users',
(select count(u1.userid) from Users u1 where u1.datecreated = u1.datecreated and u.device = 'android' group by u1.datecreated) 'Android Users',
date(u.datecreated) 'Day'
from Users u
group by date(u.datecreated)
order by u.datecreated desc
我怎样才能得到那个内部查询来产生当天的 android 用户总数?
【问题讨论】: