電子書籍の厳選無料作品が豊富!

神奈川県内の市区町村を面積が大きい順に示せ。日本国内での順位も付けること。
参考: 全国の市区町村数は 1741
SELECT `T1`.`郡など`, `T1`.`市区町村`, `T1`.`面積`,
(1741 - COUNT(*) + 1) AS '国内順位'
FROM `地理` AS `T1`, `地理` AS `T2`
WHERE `T1`.`面積` >= `T2`.`面積`
AND `T1`.`都道府県` = '神奈川県’
GROUP BY `T1`.`郡など`, `T1`.`市区町村`
ORDER BY '国内順位' DESC
あってますか?なんかうまくいきません
教えてください。お願い致します。
`都道府県`,`郡など`,`市区町村`,`緯度`,`経度`,`面積`

テーブル名は地理
SQLです教えてくださいお願いします

  • 画像を添付する (ファイルサイズ:10MB以内、ファイル形式:JPG/GIF/PNG)
  • 今の自分の気分スタンプを選ぼう!
あと4000文字

A 回答 (1件)

以下のSQL文にはいくつかの間違いがあります。

修正点を以下に示します。

カウントする行数の間違い: COUNT(*) が 1741 - COUNT(*) + 1 の中で正しく機能しない。
列名をバッククォートで囲む必要がない(あるいは一貫性がない)。
グループ化とオーダーの列が正しく指定されていない。
"国内順位" を文字列として扱っているため、シングルクォートではなくバッククォートを使用する。
修正版のSQL文は以下の通りです:

sql
コードをコピーする
SELECT
T1.`郡など`,
T1.`市区町村`,
T1.`面積`,
RANK() OVER (ORDER BY T1.`面積` DESC) AS `国内順位`
FROM
`地理` AS T1
WHERE
T1.`都道府県` = '神奈川県'
ORDER BY
T1.`面積` DESC;
説明:

RANK() OVER (ORDER BY T1.面積 DESC) は、各市区町村の面積に基づく国内順位を計算します。
WHERE T1.都道府県 = '神奈川県' により、神奈川県内の市区町村のみを選択します。
ORDER BY T1.面積 DESC により、面積が大きい順に並べ替えます。
このSQL文を使用すると、神奈川県内の市区町村が面積の大きい順に並べられ、国内順位も表示されます。

byGPT
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!