トップページに戻る
次のSQLパズルへ
前のSQLパズルへ
8-39 指定値の行から3行後まで出力
SQLパズル
ABTable
ColA ColB
---- ----
1 1
1 2
1 4
2 1
2 3 ←出力対象
3 1 ←出力対象
3 3 ←出力対象
5 1 ←出力対象
5 2
order by A,B
のソートで、(A,B) = (2,3) の行から3行後まで出力する。
出力結果
ColA ColB
---- ----
2 3
3 1
3 3
5 1
データ作成スクリプト
create table ABTable(ColA,ColB) as
select 1,1 from dual union
select 1,2 from dual union
select 1,4 from dual union
select 2,1 from dual union
select 2,3 from dual union
select 3,1 from dual union
select 3,3 from dual union
select 5,1 from dual union
select 5,2 from dual;
SQL
select ColA,ColB
from (select ColA,ColB,
count(case when ColA=2 and ColB=3
then 1 end)
over(order by ColA,ColB rows 3 preceding) as cnt
from ABTable)
where cnt = 1
order by ColA,ColB;
解説