̃Gg[͂ĂȃubN}[Nɒlj

PostgreSQL :: 最大値を持つレコードで distinct



table1

idval
101a
102b
103c


table2

idnum
1011
1012
1025
1023
1021
1033
1037
1035


table1 と table2 を結合。table2 は、num の最大値を持つレコードを id 毎に distinct する。

SELECT
    teble1.id,
    teble1.val,
    temp.num
FROM
    (SELECT DISTINCT on (id)
        id, num
    FROM
        teble2
    ORDER BY
        id, num desc
    ) temp
left join teble1 using (id)


結果

idvalnum
101a2
102b5
103c7

pstgresql8.1.2 にて検証




database/postgresql/etc/max_distinct.txt