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

SQLで漢字名称を都道府県や市区町村を表すにはどうしたらいいですか?

漢字名称は異なるが、よみの同じのものがある市区町村の一覧。あいうえお順でならべよ。同じよみのもの同士の並び順は問わない。
漢字名称とは: 市区町村の正式な名称のこと。'あきる野市'や'ニセコ町'のように、ひらがなやカタカナを含む場合もある。もっと端的に言えば、`市区町村`フィールドに書いてある名称のこと。
`市区町村コード`テーブル名
`コード`,`都道府県`,`郡など`,`よみ`,`市区町村`
あってますか?↓
SELECT DISTINCT `T1`.`市区町村`,`T1`.`よみ` ,
SUBSTR(`T1`.`よみ`, LOCATE(' ', `T1`.`よみ`) + 1) AS `市区町村`
FROM `市区町村コード` AS `T1`, `市区町村コード` AS `T2`
WHERE

ORDER BY 'よみ'

WHEREに漢字のやつを加えるらしい

「SQLで漢字名称を都道府県や市区町村を表」の質問画像

質問者からの補足コメント

  • これAIですか?

      補足日時:2024/06/29 19:31

A 回答 (1件)

あなたのクエリは、目的に沿っていない部分があるようです。

以下は、指定された条件に基づいて、市区町村の漢字名称(正式名称)とその読みが同じ市区町村の一覧をあいうえお順に取得するSQLクエリの例です。同じ読みのもの同士の並び順は問わないため、その条件も満たします。

SELECT T1.`市区町村`, T1.`よみ`
FROM `市区町村コード` T1
JOIN (
SELECT `よみ`
FROM `市区町村コード`
GROUP BY `よみ`
HAVING COUNT(DISTINCT `市区町村`) > 1
) T2 ON T1.`よみ` = T2.`よみ`
ORDER BY T1.`よみ`, T1.`市区町村`;

このクエリのポイントは以下の通りです:

1.サブクエリ(T2)では、よみが同じ市区町村の数が2
つ以上あるものを選びます。
2.メインクエリでは、サブクエリと結合し、よみが同じ
市区町村を取得します。
3.最後に、よみと市区町村で並べ替えます。

これにより、指定された条件に基づいて市区町村の一覧を取得できます。

第二案です。
SQLで漢字名称を都道府県や市区町村を表す方法
ご質問の「漢字名称は異なるが、よみの同じのものがある市区町村の一覧」を作成するには、以下のSQLクエリを使用できます。

SQL
SELECT DISTINCT T1.市区町村, T1.よみ
FROM 市区町村コード AS T1, 市区町村コード AS T2
WHERE T1.よみ = T2.よみ AND T1.市区町村 <> T2.市区町村
ORDER BY よみ;


SQLで漢字名称を都道府県や市区町村を表す方法
ご質問の「漢字名称は異なるが、よみの同じのものがある市区町村の一覧」を作成するには、以下のSQLクエリを使用できます。

SQL
SELECT DISTINCT T1.市区町村, T1.よみ
FROM 市区町村コード AS T1, 市区町村コード AS T2
WHERE T1.よみ = T2.よみ AND T1.市区町村 <> T2.市区町村
ORDER BY よみ;
コードは注意してご使用ください。
content_copy
解説

1. SELECT DISTINCT T1.市区町村, T1.よみ:

・DISTINCT: 重複する行を削除し、ユニークな結果のみを取得します。
・T1.市区町村, T1.よみ: 取得する列を指定します。ここでは、市区町村
 名とよみを取得します。

2. FROM 市区町村コード AS T1, 市区町村コード AS T2:
・ 市区町村コード AS T1, 市区町村コード AS T2: 市区町村コードテー
  ブルを2回参照します。それぞれ T1 と T2 というエイリアスで呼び
  ます。
3. WHERE T1.よみ = T2.よみ AND T1.市区町村 <> T2.市区町村:
・ 1.よみ = T2.よみ: よみが一致する行のみを選択します。
・ T1.市区町村 <> T2.市区町村: 市区町村名が違う行のみを選択します。

4.ORDER BY よみ:

・ よみ 列で結果をソートします。

補足

このクエリは、よみが一致するすべての市区町村をリストします。よみの重複が1回のみの場合のみ結果が得られます。
よみの重複が複数回ある場合は、GROUP BY 句を使用して、各よみに含まれる市区町村の数をカウントできます。


SQL
SELECT よみ, COUNT(*) AS 件数
FROM 市区町村コード
GROUP BY よみ
ORDER BY 件数 DESC;
コードは注意してご使用ください。
content_copy
このクエリは、よみの出現回数が多い順に市区町村をリストします。

注意事項

このクエリは、市区町村コードテーブルが適切に構造化されていることを前提としています。
テーブル構造やデータの内容が異なる場合は、クエリを調整する必要があります。
参考情報

SQL DISTINCT キーワード
SQL JOIN
SQL GROUP BY
SQL ORDER BY [無効な URL を削除しました]
    • good
    • 1

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

このQ&Aを見た人はこんなQ&Aも見ています

関連するカテゴリからQ&Aを探す


このQ&Aを見た人がよく見るQ&A