我有一个用户表,我正在尝试提供一个查询,该查询返回按日期分组的所有用户的总数,以及按日期分组的特定客户的用户总数。
这是我迄今为止所拥有的,按日期分组的用户总数,但似乎无法弄清楚如何获取user.client_id = x
的用户数SELECT user.created,
COUNT(user.id) AS overall_count
FROM user
GROUP BY DATE(user.created)
尝试这样的行结果:
[created] => 2010-05-15 19:59:30
[overall_count] => 10
[client_count] => (some fraction of overall count, the number of users where
user.client_id = x grouped by date)
答案 0 :(得分:15)
这应该可以解决MySQL的问题:
SELECT
user.created,
COUNT(user.id) AS overall_count,
SUM(user.client_id = x) AS client_count
FROM user
GROUP BY DATE(user.created)
如果布尔表达式user.client_id = x
为真,则返回1
,如果不是,则返回0
,因此您可以将它们相加。
使用其他数据库
SUM( CASE WHEN user.client_id = x THEN 1 ELSE 0 END ) AS client_count