Q&A
実現したいこと
以下のようなテーブルがあります。ここでCountryは、別に決めたソート順があります。
欲しい結果は下記です。
JPN → USA → KOR の順で、一番最初の一つだけを抽出したい
css | country |
---|---|
Bed | CHN |
Chair | JPN |
Sofa | KOR |
Table | JPN |
該当のソースコード
sql
1CREATE TABLE furniture ( 2 css VARCHAR(10), 3 Country VARCHAR(3), 4 number VARCHAR(15) 5); 6 7INSERT INTO furniture (css, Country, number) VALUES 8('Chair', 'JPN', '9P5X-8HJ5-L2QP'), 9('Chair', 'USA', 'A8C5-H4U6-XU2Q'), 10('Chair', 'KOR', 'V3J6-S5K3-U6W3'), 11('Table', 'JPN', 'F5P5-K6NS-8Q2Q'), 12('Table', 'USA', 'G4C5-K2Q2-X9KP'), 13('Table', 'FRA', 'A7C7-H5N5-L2P2'), 14('Sofa', 'KOR', 'O9K3-H3J3-V6N2'), 15('Sofa', 'USA', 'G2P3-U3H9-X3V3'), 16('Sofa', 'KOR', 'M6U2-V2Q2-R2Q2'), 17('Bed' , 'CHN' ,'A5L2-K2V6-K5K5'), 18('Bed' , 'FRA' ,'G8N7-H9X5-V7P2'); 19
試したこと
SELECT DISTINCT on (css) *, CASE Country WHEN 'JPN' THEN 1 WHEN 'USA' THEN 2 WHEN 'KOR' THEN 3 ELSE 4 END as x FROM funiture ORDER BY x
DistinctでCSSを限定しています。
ORDER BYをcssにしないと怒られます。
ERROR: SELECT DISTINCT ON expressions must match initial ORDER BY expressions LINE 1: SELECT DISTINCT on (css) *, ^
下記のような回答は推奨されていません。
このような回答には修正を依頼しましょう。