You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取每日最高value对应行的id、timestamp及value字段?

数据
idtimestampvalue
2252018-07-24 13:00:000
2262018-07-24 18:33:32196
2272018-07-25 5:59:14290
1732018-07-05 8:16:14258
2282018-07-25 7:00:00469
1752018-07-07 6:00:000
1762018-07-07 9:25:35236
1772018-07-07 17:19:13300
1782018-07-08 5:47:13323
1792018-07-08 6:49:14230
1802018-07-08 17:45:36270
1812018-07-09 5:41:13250
1822018-07-09 9:43:13213
1832018-07-09 18:37:44226
1842018-07-10 5:22:44380
1852018-07-10 7:37:14200
1862018-07-10 15:54:44260
预期结果
idtimestampvalue
2262018-07-24 18:33:32196
1732018-07-05 8:16:14258
2282018-07-25 7:00:00469
1772018-07-07 17:19:13300
1782018-07-08 5:47:13323
1812018-07-09 5:41:13250
1842018-07-10 5:22:44380
修改后的查询方案

方法一:窗口函数(推荐)

用ROW_NUMBER()窗口函数按日期分组,每组内按value降序排序,取排序第一的行:

SELECT id, timestamp, value
FROM (
    SELECT 
        id, 
        timestamp, 
        value,
        ROW_NUMBER() OVER (PARTITION BY timestamp::date ORDER BY value DESC) AS rn
    FROM yourtable
) t
WHERE rn = 1
ORDER BY timestamp::date;

如果同一天存在多行value同为最大值的情况,想保留所有这些行,可以把ROW_NUMBER()换成RANK()。

方法二:子查询关联

先通过子查询算出每日最大value,再关联主表匹配日期和value:

SELECT t.id, t.timestamp, t.value
FROM yourtable t
JOIN (
    SELECT timestamp::date AS day, MAX(value) AS max_value
    FROM yourtable
    GROUP BY day
) m ON t.timestamp::date = m.day AND t.value = m.max_value
ORDER BY m.day;

内容的提问来源于stack exchange,提问作者montes

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 07:58:09