ここにいます:
with w(time, ID, Page) as ( select '9:30', 1, 'name1' from dual union all select '9:30', 1, 'name2' from dual union all select '9:30', 1, 'name3' from dual union all select '9:30', 2, 'name4' from dual union all select '9:30', 2, 'name5' from dual union all select '7:30', 3, 'name1' from dual ) select * from ( select w.time, w.id, w.page, row_number() over (partition by w.time, w.id order by w.page) rnk from w ) pivot (max(page) for rnk in (1 as page1, 2 as page2, 3 as page3)) order by 1, 2 ;
プレ>これにより:
TIME ID PAGE1 PAGE2 PAGE3 7:30 3 name1 9:30 1 name1 name2 name3 9:30 2 name4 name5
プレ>