gpt4 book ai didi

mysql - sql多列按最新过滤重复项

转载 作者:行者123 更新时间:2023-11-29 23:04:46 24 4
gpt4 key购买 nike

我有一个 SQL 查询 (sqlight3),它为我提供三元数据(名称、值、日期)。

select name, value, date from
"different things and conditions"
order by date desc

结果按日期排序,如下所示:

name | value | date
-------------------
a | x | 2015
b | y | 2014
a | z | 2013
b | x | 2012
c | y | 2011

现在我希望过滤结果,以便每个名称都是唯一的,并且我只获得最新的(按日期)三元组。我期待结果

name | value | date
-------------------
a | x | 2015
b | y | 2014
c | y | 2011

我怎样才能实现这个目标?

最佳答案

大多数数据库都支持 ANSI 标准窗口函数,因此可以使用 row_number() 来完成:

select name, value, date
from (select t.*,
row_number() over (partition by name order by date desc) as seqnum
from . . .
) t
where seqnum = 1;

编辑:

MySQL 不支持row_number()。这是另一种方法:

select name,
substring_index(group_concat(value order by date desc), ',', 1) as value
max(date) as date
from . . .
group by name;

关于mysql - sql多列按最新过滤重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28344321/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com