我有这个查询,用于选择过去30天内的用户注册数量:
SELECT
COUNT(*) AS UserCount30
FROM
User
WHERE
User.UserDateCreated > (CURDATE() - INTERVAL 30 DAY)
Run Code Online (Sandbox Code Playgroud)
然后我有这个查询,选择过去7天内注册的用户数
SELECT
COUNT(*) AS UserCount7
FROM
User
WHERE
User.UserDateCreated > (CURDATE() - INTERVAL 7 DAY)
Run Code Online (Sandbox Code Playgroud)
理想情况下,这些都将成为一个更大的查询的一部分.我怎么能在一个有效查询中获得这两个值,最好不使用子查询.
小智 6
拉30天并计算(*).然后做一个总和,并且总和中的expr有if语句如果在7天内返回1,如果不是则返回0.
SELECT COUNT(*) AS UserCount30,
SUM(if((CURDATE() - INTERVAL 7 DAY) < User.UserDateCreated) 1 else 0)
FROM USER
WHERE User.UserDateCreated > (CURDATE() - INTERVAL 30 DAY)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1524 次 |
| 最近记录: |