关于以下帖子:
我编写了一个查询语句,用于查找按日分区的最后3个日志事件组的最新3个条目,最多包含9个条目,并成功地从PostgreSQL日志表中收集了以下数据:
我使用的查询语句如下:
SELECT
*
FROM (
SELECT
ROW_NUMBER() OVER (PARTITION BY created_at::date ORDER BY created_at::time DESC) AS row_number,
DENSE_RANK() OVER (ORDER BY created_at::date DESC) AS group_number,
l.*
FROM
logs l
WHERE
account_id = 1) subquery
WHERE
subquery.row_number <= 3
AND group_number <= 3
LIMIT 9;
但是我还缺少一个步骤:结果以日期为单位降序“分组”(很好),但是在每个组内,时间顺序似乎不起作用。
实际上,期望的顺序应该是(仅显示每行的id
):
| EXISTING ROW ORDERING | EXPECTED ROW ORDERING |
| --------------------- | --------------------- |
52 56
53 53
56 52
46 48
48 47
47 46
30 30
31 31
32 32
有什么想法吗?谢谢。