我有一张事件表。有些事件具有重复性,因此将使用相同的名称。我需要返回返回每个事件最早的结果。我需要如下查询中所示的字段。我无法使用分组依据,因为唯一相同的是标题。我需要每个事件最早条目的所有详细信息
select id, title, event_date, url from events where event_date > date()
我尝试了一个子查询,如果我使用 MIN(id),它会起作用,但我需要 MIN(event_date) 的 id
有些事件具有重复性,因此将使用相同的名称。我需要返回返回每个事件最早的结果。
我假设“名称”是指“标题”。
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;