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

获取数据表中各test_id对应最新记录的SQL改写需求

解决方案:获取每个test_id的最新记录

针对你的需求,我们可以用**窗口函数ROW_NUMBER()**来实现,这个方法完全不需要对text类型的字段使用聚合函数,完美适配你的场景。

修改后的SQL语句:

SELECT r.time_stamp, r.result, r.note, t.test
FROM (
    SELECT 
        results.*,
        ROW_NUMBER() OVER (PARTITION BY results.test_id ORDER BY results.time_stamp DESC) AS rn
    FROM results
) r
INNER JOIN tests t ON r.test_id = t.id
WHERE r.rn = 1;

代码逻辑说明:

  • 子查询中通过ROW_NUMBER()函数给每条记录标记行号:
    • PARTITION BY results.test_id:将results表按test_id拆分成独立的分组
    • ORDER BY results.time_stamp DESC:每个分组内按时间戳从新到旧排序,最新的记录会被标记为行号rn=1
  • 外层查询只筛选行号为1的记录,再和tests表关联,就能得到每个test_id对应的最新行,同时完整保留所有需要的字段(包括text类型的note和test)

这样就能精准满足你的需求啦!

内容的提问来源于stack exchange,提问作者Martin Sitarčík

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 08:56:10