
はじめまして。
現在、私は仕事で統計を表示するためのレポートを作成中ですが、
データ取得SQLのよいアイデアが浮かびません。
わかる方がいらっしゃいましたら、お知恵を貸してください。
booking_id 販売支店 出身国 値段 車種
----------------------------------------------
01 東日本 ブラジル 100,000 A
02 東日本 ブラジル 200,000 A
03 東日本 ブラジル 300,000 B
04 東日本 ブラジル 400,000 C
05 東日本 日本 500,000 A
06 東日本 日本 600,000 B
07 西日本 ロシア 700,000 B
08 西日本 ロシア 800,000 B
09 西日本 ロシア 900,000 B
10 西日本 韓国 100,000 A
11 西日本 韓国 200,000 B
12 西日本 韓国 300,000 C
13 西日本 韓国 400,000 C
上記のようなテーブルがある場合、販売支店と出身国でグループ化して、
それぞれの値段の合計値を出します。
その際、車種はもっとも頻出した値を表示したいのですが、
どのようにしたら実現できますでしょうか。
(最頻値が2つ以上の場合は、その中のどれかを表示する。)
期待結果は以下のようになります。
販売支店 出身国 値段 車種
---------------------------------------
東日本 ブラジル 1000,000 A
東日本 日本 1100,000 A
西日本 ロシア 2400,000 B
西日本 韓国 1000,000 C
SQL Server は、2008R2を使用しております。
以上、よろしくお願いいたします。
No.1ベストアンサー
- 回答日時:
1) 値段の集計
SELECT 販売支店, 出身国, SUM(値段) AS 値段
FROM テーブル
GROUP BY 販売支店, 出身国
ORDER BY 販売支店, 出身国
(2)車種の頻度順
SELECT COUNT(*), 車種
FROM テーブル
GROUP BY 車種
ORDER BY COUNT(*) DESC, 車種
(3) 合体
SELECT a.販売支店, a.出身国, SUM(a.値段) AS 値段
, (
SELECT TOP 1 b.車種
FROM テーブル b
WHERE b.販売支店 = a.販売支店 AND b.出身国 = a.出身国
GROUP BY b.車種
ORDER BY COUNT(*) DESC, b.車種
) AS 車種
FROM テーブル a
GROUP BY a.販売支店, a.出身国
ORDER BY a.販売支店, a.出身国
実際に試してみたところ、正しい値が得られました。
SELECT 区の中にテーブルを入れてしまう方法は初めて知りました。
とてもシンプルで、わかりやすい説明、ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「テーブルに座って……」という...
-
オーダーの覚え方について
-
Excelのテーブルでmatch関数の...
-
特定物と不代替物の違い
-
男性と2人で飲食店に行きテーブ...
-
コンボボックスにレコードセッ...
-
テーブル名の前のドットの意味
-
ACCESS 社内ネットワークで、テ...
-
時給の変更に対応する方法
-
【エクセル】データテーブルの...
-
SQLの作り方
-
SQLです!!教えてください。あ...
-
複数テーブルが絡む複雑なUPDAT...
-
SQLのSELECT結果を縦...
-
別テーブルにIDが存在しないレ...
-
面接のときテーブルが正面に。...
-
会社の飲み会の幹事になり、座...
-
人の前を通る場合について
-
【MySQL】1対1でテーブルをあ...
-
下記、問題に対しての解答が以...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「テーブルに座って……」という...
-
会社の飲み会の幹事になり、座...
-
外部キーだけのテーブル(主キ...
-
テーブルリンク リンク元を知...
-
オーダーの覚え方について
-
下記、問題に対しての解答が以...
-
飲み会で、座敷orテーブルどち...
-
アクセスのリンクテーブル一覧...
-
【エクセル】データテーブルの...
-
L2SWはARPテーブルを持っている?
-
面接のときテーブルが正面に。...
-
男性と2人で飲食店に行きテーブ...
-
UTF8のテーブルをODBCドライバ...
-
お金持ちのテーブル
-
1つのテーブルに同じデータを参...
-
テーブル名の前のドットの意味
-
複雑なSQL文について
-
データベースの接続に失敗して...
-
【PHP】SQL文のSUM関数で出力し...
-
更新されたテーブルを表示したい
おすすめ情報