sql >> データベース >  >> RDS >> PostgreSQL

各グループで最高

    Postgres固有の(そして最速の)ソリューション:

    select distinct on (out_id) *
    from foo
    order by out_id, id desc;
    

    ウィンドウ関数 を使用した標準SQLソリューション (2番目に速い)

    select id, x_part, y_part, out_id, out_idx
    from (
      select id, x_part, y_part, out_id, out_idx, 
             row_number() over (partition by out_id order by id desc) as rn
      from foo
    ) t
    where rn = 1
    order by id;
    

    どちらのソリューションも、各idのみを返すことに注意してください。 out_idが複数ある場合でも1回 同じ値。それらをすべて返したい場合は、dense_rank()を使用してください row_number()の代わりに



    1. MySQLのJSON_CONTAINS()の例

    2. Flask-移行してテーブルが検出されない

    3. c#でのjsonのシリアル化と逆シリアル化

    4. PostgresでオブジェクトのJSON配列をクエリする