トップページに戻る
次のSQLパズルへ
前のSQLパズルへ
5-52 order by句で分析関数
SQLパズル
IDListテーブル
ID col
-- ---
1 2
1 5
2 1
2 7
3 3
3 4
4 1
IDごとのcolの最小値の昇順、IDの昇順、Colの昇順
に出力する。
出力結果
ID col
-- ---
2 1
2 7
4 1
1 2
1 5
3 3
3 4
データ作成スクリプト
create table IDList(
ID number(1),
col number(1));
insert into IDList values(1,2);
insert into IDList values(1,5);
insert into IDList values(2,1);
insert into IDList values(2,7);
insert into IDList values(3,3);
insert into IDList values(3,4);
insert into IDList values(4,1);
commit;
SQL
--■■■分析関数を使う方法■■■
select ID,col
from IDList
order by min(col) over(partition by ID),ID,col;
--■■■相関サブクエリを使う方法■■■
select ID,col
from IDList a
order by
(select min(b.col)
from IDList b
where b.ID = a.ID),ID,col;
解説
order by句で、分析関数を使うことができます。