1. 程式人生 > >Oracle資料庫之group by:按自定規則分組

Oracle資料庫之group by:按自定規則分組

在資料庫分組查詢group by 中,預設的方式有按某一個欄位的均分查詢(如按班級編號分組,每一個班分組,每兩個班分組。。。)

在這裡寫出一種按照自定義規則分組的方式:

以下語句,按自定義的格式將大於等於18個班級的學生分為4類,統計每個類別的學生數量。當然,同類未必要班級號相連,分類

條件寫在when ...then之間 then之後的標誌作為分類名稱。

表格:

create table student
(
xh varchar2(10) primary key,
class_no number(6) not null
);

分組統計:

select 
case 
	when class_no>=1 and class_no<=2 then 1
	when class_no>=3 and class_no<=6 then 2
	when class_no>=7 and class_no<=17 then 3
	when class_no>=18 then 4
end
as class_fenlei,--班級分類
count(xh)--每個班級分類的學生人數
 from student  
group by (
case 
	when class_no>=1 and class_no<=2 then 1
	when class_no>=3 and class_no<=6 then 2
	when class_no>=7 and class_no<=17 then 3
	when class_no>=18 then 4
end
);

轉載請

註明出處