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

如何查询每个客户最后插入的记录 现有GROUP BY查询结果不符合预期

你当前使用的SQL语句无法得到预期结果,核心原因是GROUP BY customer在未搭配对应聚合函数时,会默认返回每个客户分组下的第一条匹配记录,而非按id倒序的最新插入记录。

方案1:支持窗口函数的数据库(MySQL 8.0+、PostgreSQL、SQL Server等通用写法)

用ROW_NUMBER窗口函数给每个客户的记录按id倒序编号,取每组编号为1的记录即可:

SELECT id, customer AS Name, value
FROM (
    SELECT 
        id,
        customer,
        value,
        ROW_NUMBER() OVER (PARTITION BY customer ORDER BY id DESC) AS rn
    FROM customer
) AS temp
WHERE rn = 1
ORDER BY id;

方案2:低版本MySQL兼容写法

先通过子查询拿到每个客户对应的最大id(即最新插入记录的id),再关联原表取完整字段:

SELECT c.id, c.customer AS Name, c.value
FROM customer c
INNER JOIN (
    SELECT MAX(id) AS latest_id
    FROM customer
    GROUP BY customer
) AS latest ON c.id = latest.latest_id
ORDER BY c.id;

两种写法最终输出都和你预期的结果完全一致。

内容的提问来源于stack exchange,提问作者Anju L S

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 22:06:00