当未分组的列依赖于分组的列时,如何 select 最大值?
How can I select the largest value when an ungrouped column is dependent on a grouped column?
我是 Redshift 新手。我有两个表,ticket_booking 和 ticket_review,两个表的关系是一对多。合并后看起来像:
我正在寻找的结果(我想获得每个 ticket_booking id 的最大数字)是:
我尝试使用 group by 命令帮助不同的记录来获得所需的结果。请参阅下面的脚本:
select b.id, r.id, max(r.number) as revision_number
from dw.ticket_review as r, dw.ticket_booking as b
where r.ticket_booking_id = b.id
group by b.id
但是,我收到错误消息列“r.id”必须出现在 GROUP BY 子句中或用于聚合函数。如果我这样做,我会得到第一张照片的结果。我尝试了不同问题中提到的不同方法,但 none 似乎对我的情况有所帮助。任何帮助将不胜感激! :)
每个预订分配 row number 最高评价的顺序,然后仅选择第一行:
select booking_id, ticket_review, number
from (select b.id as booking_id, r.id as ticket_review, r.number,
row_number() over (partition by b.id order by r.id desc) rn
from dw.ticket_review as r, dw.ticket_booking as b
where r.ticket_booking_id = b.id) x
where rn = 1;
我是 Redshift 新手。我有两个表,ticket_booking 和 ticket_review,两个表的关系是一对多。合并后看起来像:
我正在寻找的结果(我想获得每个 ticket_booking id 的最大数字)是:
我尝试使用 group by 命令帮助不同的记录来获得所需的结果。请参阅下面的脚本:
select b.id, r.id, max(r.number) as revision_number
from dw.ticket_review as r, dw.ticket_booking as b
where r.ticket_booking_id = b.id
group by b.id
但是,我收到错误消息列“r.id”必须出现在 GROUP BY 子句中或用于聚合函数。如果我这样做,我会得到第一张照片的结果。我尝试了不同问题中提到的不同方法,但 none 似乎对我的情况有所帮助。任何帮助将不胜感激! :)
每个预订分配 row number 最高评价的顺序,然后仅选择第一行:
select booking_id, ticket_review, number
from (select b.id as booking_id, r.id as ticket_review, r.number,
row_number() over (partition by b.id order by r.id desc) rn
from dw.ticket_review as r, dw.ticket_booking as b
where r.ticket_booking_id = b.id) x
where rn = 1;