SQLite 返回最早的类似事件

问题描述 投票:0回答:1

我有一张事件表。有些事件具有重复性,因此将使用相同的名称。我需要返回返回每个事件最早的结果。我需要如下查询中所示的字段。我无法使用分组依据,因为唯一相同的是标题。我需要每个事件最早条目的所有详细信息

select id, title, event_date, url from events where event_date > date()

我尝试了一个子查询,如果我使用 MIN(id),它会起作用,但我需要 MIN(event_date) 的 id

sqlite
1个回答
0
投票

有些事件具有重复性,因此将使用相同的名称。我需要返回返回每个事件最早的结果。

我假设“名称”是指“标题”。

首先,使用

row_number
按日期对每个活动进行排序。

然后只查询行号为1的。

with events_ordered as (
  select
    *,
    row_number() over (
      partition by title
      order by event_date desc
    ) as date_order
  from events
)
select id, title, event_date, url
from events_ordered
where date_order = 1;
© www.soinside.com 2019 - 2024. All rights reserved.