要按时间范围对Google BigQuery SQL中的用户进行去重选择,可以使用以下解决方法:
CREATE TABLE user_activity (
user_id STRING,
timestamp TIMESTAMP
);
INSERT INTO user_activity (user_id, timestamp)
VALUES
('user1', TIMESTAMP('2022-01-01 10:00:00')),
('user1', TIMESTAMP('2022-01-01 11:00:00')),
('user2', TIMESTAMP('2022-01-01 12:00:00')),
('user2', TIMESTAMP('2022-01-01 13:00:00')),
('user3', TIMESTAMP('2022-01-01 14:00:00')),
('user3', TIMESTAMP('2022-01-01 15:00:00'));
SELECT
user_id,
timestamp
FROM (
SELECT
user_id,
timestamp,
ROW_NUMBER() OVER (PARTITION BY user_id ORDER BY timestamp) AS row_number
FROM
user_activity
) AS activity_with_row_number
WHERE
row_number = 1; -- 每个用户的第一个时间戳
这将返回每个用户的第一个时间戳,实现了按时间范围对用户进行去重选择。
上一篇:按时间范围查询SQL查询
下一篇:按时间范围分组结果