--row_number 不加partition 则只是按照clinic_label来排序显示序号
select row_number() over(order by clinic_label) ,clinic_label From clinic_master where visit_date=trunc(sysdate)
--row_number 加了partition 则按照clinic_label进行分组,每组重新显示序号1,2,3--
select row_number() over (partition by clinic_label order by clinic_label), clinic_label From clinic_master where visit_date=trunc(sysdate)
select row_number() over (partition by clinic_label order by serial_No), clinic_label From clinic_master where visit_date=trunc(sysdate)
--取serial_no=8按照升序排列 serial_no的序号,第一个行号
select rank(8) within group ( order by serial_no asc ) From clinic_master where visit_date=trunc(sysdate)
--rank 不加partition 则按照clinic_label分组来显示序号 ,第一个clinic_label 序号全部是1,第二个分组是全部第一个分组的数量,以此类推
显示 1,2,2,3,3,5,5......
select rank() over (order by clinic_label),clinic_label From clinic_master where visit_date=trunc(sysdate)
--rank按照clinic_label分组,按照clinic_label排序,因为每个分组内数据都一致,所以显示的全部都是1
select rank() over (partition by clinic_label order by clinic_label), clinic_label From clinic_master where visit_date=trunc(sysdate)
--rank按照clinic_label分组,按照serial_no排序,同一个分组内相同序号的显示一致,并且序号会安装分组内的数据行数据计算不连续。
select rank() over (partition by clinic_label order by serial_no), serial_no,clinic_label From clinic_master where visit_date=trunc(sysdate)
--dense_rank不加partition 则按照clinic_label分组来显示序号 ,第一个clinic_label 序号全部是1,第二个分组全部是2,以此类推
select dense_rank()over (order by clinic_label), clinic_label From clinic_master where visit_date=trunc(sysdate)
--dense_rank加partition 按照clinic_label分组,按照clinic_label排序,因为同一个分组中显示的clinic_label都相同,所以显示的都是1
select dense_rank()over (partition by clinic_label order by clinic_label), clinic_label From clinic_master where visit_date=trunc(sysdate)
--dense_rank加partition 按照clinic_label分组,按照serial_no排序,会根据serial_no的不同显示不同的序号
select dense_rank()over (partition by clinic_label order by serial_no), serial_no,clinic_label From clinic_master where visit_date=trunc(sysdate)