前提・実現したいこと
PostgreSQLを使ってデータベースの勉強をしているのですが、一つSQL文でわからないことがあります。
以下のテーブルがあったとき、それぞれの所在地で製造年が最も新しい形式を、副問い合わせを用いてすべて表示するSQL文が分かりません。
テストテーブル
形式 | 番号 | 所在地 | 製造年
------+------+--------+------+--------
C11 | 171 | 北海道 | 1940
C11 | 325 | 茨城 | 1946
C57 | 1 | 京都 | 1937
C57 | 180 | 新潟 | 1946
C57 | 135 | 埼玉 | 1940
C62 | 1 | 京都 | 1948
C62 | 2 | 京都 | 1948
D51 | 200 | 京都 | 1938
D51 | 498 | 新潟 | 1940
そして、このような結果を得たいです。
形式 番号 所在地 製造年
C11 171 北海道 1940
C11 325 茨城 1946
C57 135 埼玉 1940
C57 180 新潟 1946
C62 1 京都 1948
C62 2 京都 1948
試したこと
SQL
1SELECT 形式,番号,所在地,製造年 FROM テストテーブル WHERE 製造年=(SELECT MAX(製造年) FROM テストテーブル GROUP BY 所在地);
この文で表示されると思ったのですが、
ERROR: more than one row returned by a subquery used as an expression
と表示され、うまくいきませんでした。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。