我的目标是在24小时内检测所有用户名并统计每个用户名的登录时间。我是分开的,但我不能把它组合起来。
SELECT
DISTINCT "username"
FROM
my_table;
我的第二个查询是获取与此用户名相关的日志
select count(*)
from my_table as "foo" where "username" = 'example_username' and "foo"."timestamp" BETWEEN NOW() - INTERVAL '24 HOURS' AND NOW()
ı 要编写一个查询此查询检测唯一/不同的用户名并返回每个用户名的最近24小时日志吗
如果我们认为这个查询返回一个变量列表
SELECT
DISTINCT "username"
FROM
my_table;
变量\u list=(用户名1,用户名2,…)
对变量列表中的每个用户名运行该查询
select count(*)
from my_table as "foo" where "username" = 'example_username' and "foo"."timestamp" BETWEEN NOW() - INTERVAL '24 HOURS' AND NOW()
你怎么能ı 你这么做?解决这个问题的正确方法是什么?
2条答案
按热度按时间mzillmmw1#
使用cte创建一个用户列表,然后只使用一个带有聚合的左连接。
vpfxa7rd2#
我想你只是想
WHERE
条款。假设您没有未来的时间戳:如果要统计过去24小时内的用户数,请使用聚合: