如何从sql

时间:2018-12-11 14:29:31

标签: sql amazon-redshift

因此,我为许多不同的车辆保存了不同评估的表格,我想选择具有特定评估类型的所有评估,但是该类型的特定记录ID可以有多个条目,我只想选择最旧的

所以我有这个查询(结果如下)

select

p.seller_opportunity_id
, p.created_at
, p.created_by
, p.type
, p.pricing_output_quote3_rounded_list_price_usd

    from
      frunk.pricing_events as p
      inner join database.opportunity o
    inner join database.vehicle_c v on
      o.vehicle_id_c = v.id on
        p.seller_opportunity_id = o.id
    where
      o.auto_reject_c is false
      and o.stage_name not in (
        'Lost'
        , 'Sold'
        , 'Handover'
      )
     -- and p.type = 'appraisal-escalated'
      and o.id = 'id'
    order by
      p.created_at desc

这会导致什么

Image URL

我想创建一个嵌套查询,在其中我可以从类型为pricing_output_quote3_rounded_list_price_usdseller_opportunity_id的{​​{1}}中获取一个appraisal-escalated的{​​{1}}并带有第一个记录的值(有可以是几个,如屏幕截图所示)

请注意,例如o.id where子句是清酒,在实际查询中,我将使用所有id查询整个表,因此添加 manual-quote不起作用

1 个答案:

答案 0 :(得分:1)

使用排名功能,例如dense_rank

select *
from (select p.*
            ,dense_rank() over(partition by seller_opportunity_id order by created_at) as rnk
      from appraisals 
      where type = 'appraisal-escalated'
     ) t
where rnk = 1

documentation

中了解有关该功能的更多信息