如何根据日期计算访问?
访问表
user_id | visited_in |
---|---|
518 | 2022-04-13 20:37:04 |
518 | 2021-12-29 22:26:50 |
518 | 2021-03-04 04:22:46 |
518 | 2021-08- 2021-08--08- 13 02:14:54 |
518 | 2022-05-26 20:49:01 |
518 | 2022-05-05 17:47:46 |
518 | 2021-09-12 08:58:33 |
518 | 2021-2021-04-07 18:36:59 |
518 | 2021-06-14 04:47:52 |
518 | 2021-12-26 22:16:47 |
让我们假设当前时间是28-5-2022 15:00:00:00
我正在尝试在日期之前过滤访问。
执行命令时的预期结果
last_60_minutes last_24_hours | your | last_7_days | last_30_days last_6_6_6_months | for | last_months last_12_months |
---|---|---|---|---|---|
0 | 1 | 2 | 5 | 8 | 8 |
这是我尝试过的,但我想要的是我想要的,因为我想要 for your strong> for your strong>
SELECT
COUNT((SELECT USER_ID FROM VISITS WHERE VISITED_IN >= DATE_SUB(NOW(), INTERVAL 60 MINUTE))) AS LAST_60_MINUTES,
COUNT((SELECT USER_ID FROM VISITS WHERE VISITED_IN >= DATE_SUB(NOW(), INTERVAL 24 HOUR))) AS LAST_24_HOURS,
COUNT((SELECT USER_ID FROM VISITS WHERE VISITED_IN >= DATE_SUB(NOW(), INTERVAL 7 DAY))) AS LAST_7_DAYS,
COUNT((SELECT USER_ID FROM VISITS WHERE VISITED_IN >= DATE_SUB(NOW(), INTERVAL 30 DAY))) AS LAST_30_DAYS,
COUNT((SELECT USER_ID FROM VISITS WHERE VISITED_IN >= DATE_SUB(NOW(), INTERVAL 6 MONTH))) AS LAST_6_MONTHS,
COUNT((SELECT USER_ID FROM VISITS WHERE VISITED_IN >= DATE_SUB(NOW(), INTERVAL 12 MONTH))) AS LAST_12_MONTHS
FROM VISITS WHERE
USER_ID = 518
>此 a>
The VISITS table
USER_ID | VISITED_IN |
---|---|
518 | 2022-04-13 20:37:04 |
518 | 2021-12-29 22:26:50 |
518 | 2021-03-04 04:22:46 |
518 | 2021-08-13 02:14:54 |
518 | 2022-05-26 20:49:01 |
518 | 2022-05-05 17:47:46 |
518 | 2021-09-12 08:58:33 |
518 | 2021-04-07 18:36:59 |
518 | 2021-06-14 04:47:52 |
518 | 2021-12-26 22:16:47 |
Let's suppose the current time is 28-5-2022 15:00:00
, I'm trying to filter the visits by the date.
The expected result when executing the command
LAST_60_MINUTES | LAST_24_HOURS | LAST_7_DAYS | LAST_30_DAYS | LAST_6_MONTHS | LAST_12_MONTHS |
---|---|---|---|---|---|
0 | 0 | 1 | 2 | 5 | 8 |
Here is what I tried but does not work as I want
SELECT
COUNT((SELECT USER_ID FROM VISITS WHERE VISITED_IN >= DATE_SUB(NOW(), INTERVAL 60 MINUTE))) AS LAST_60_MINUTES,
COUNT((SELECT USER_ID FROM VISITS WHERE VISITED_IN >= DATE_SUB(NOW(), INTERVAL 24 HOUR))) AS LAST_24_HOURS,
COUNT((SELECT USER_ID FROM VISITS WHERE VISITED_IN >= DATE_SUB(NOW(), INTERVAL 7 DAY))) AS LAST_7_DAYS,
COUNT((SELECT USER_ID FROM VISITS WHERE VISITED_IN >= DATE_SUB(NOW(), INTERVAL 30 DAY))) AS LAST_30_DAYS,
COUNT((SELECT USER_ID FROM VISITS WHERE VISITED_IN >= DATE_SUB(NOW(), INTERVAL 6 MONTH))) AS LAST_6_MONTHS,
COUNT((SELECT USER_ID FROM VISITS WHERE VISITED_IN >= DATE_SUB(NOW(), INTERVAL 12 MONTH))) AS LAST_12_MONTHS
FROM VISITS WHERE
USER_ID = 518
For more information look at this question
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
要么使用
案例
表达式:或
sum()
而不是count()
:请参阅 demo 。
。
Either use
CASE
expressions:or
SUM()
instead ofCOUNT()
:See the demo.