Oracleデータベースのgroupby:カスタム・ルールでグループ化


データベース・パケット・クエリーgroupbyでは、デフォルトでは、クラス番号でグループ化されたクエリー、クラスごとにグループ化されたクエリー、クラスごとにグループ化されたクエリーなど、フィールド別に均等にクエリーされます..
ここでは、カスタム・ルールに従ってグループ化する方法を示します.
次の文は、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
);

 
 
転載してください
出典を明記する