質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.51%
SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

Q&A

解決済

1回答

5485閲覧

GROUPBY句でグループ化する際にグループ化されるもの同士をソートしたい

m_s

総合スコア51

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

0グッド

0クリップ

投稿2017/02/12 00:35

SQLでGROUPBYをもちいる際に

SQL

1SELECT * From dbname GROUP BY (集計するカラム) DESC

で、グループ化されたものを降順にソートできるのですが、
逆に降順にソートしたものをグループ化したいときはどのようにすればよいでしょうか?

例えば

player_idvalueclass
113
121
213
151
143
2111
193

のようなテーブルをvalueで降順にソートしてからplayer_idでグループ化して最終的に

player_idvalueclass
193
2111

のようなテーブルを作りたい時はSQL文をどのように書けばよいのか方法を教えてほしいです

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

ORACLEであれば集計関数を利用します。(mySqlとかでは利用できません。)

sql

1SELECT 2 player_id, 3 value, 4 class 5FROM 6 (SELECT 7 player_id, 8 value, 9 class, 10 ROW_NUMBER() OVER ( 11 PARTITION BY player_id 12 ORDER BY 13 value DESC) AS val_seq 14 FROM 15 TBL ) WORK 16WHERE 17 WORK.val_seq = 1; 18

集計関数が利用できなければ

sql

1SELECT 2 player_id, 3 value, 4 class 5FROM 6 TBL T1 7WHERE 8 val = (SELECT 9 MAX(val) 10 FROM 11 TBL T2 12 WHERE 13 T1.player_id = T2.player_id);

投稿2017/02/12 01:00

7tsuno

総合スコア310

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.51%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問