次の構造のテーブルがあります。
ID KEY VALUE SEQ
1 Amount 5 2
1 Amount 4 1
1 Type T1 2
1 Type T1 1
2 Amount 10 2
2 Amount 5 1
2 Type T2 2
2 Type T2 1
これを取得するクエリを作成したいと思います。
ID Amount Type
1 5 T1
2 10 T2
ご覧のとおり、(ID, Key) の複数の組み合わせが存在する可能性がありますが、(ID, Key, Seq) は一意です。
SELECT T.ID,
T1.VALUE as Amount,
T2.VALUE as Type
FROM
(SELECT ID, MAX(SEQ) as MAXSEQ FROM TABLE GROUP BY ID) as T
JOIN
TABLE as T1
ON T1.ID = T.ID
AND T1.KEY = 'Amount'
AND T1.SEQ = MAXSEQ
JOIN
TABLE as T2
ON T2.ID = T.ID
AND T2.KEY = 'Type'
AND T2.SEQ = MAXSEQ
しかし、私は期待していなかった結果を得ています
ID Amount Type
1 5 T1
1 4 T1
1 10 T1
1 5 T1
2 10 T2
2 5 T2
2 4 T2
2 5 T2
私はすでにこの投稿を読みましたが、ここでは役立ちますが、私のケースには当てはまりません
誰がこれを修正するかについて何か考えはありますか?