SQL実践P227ウィンドウ関数ROW_NUM

SQL実践P227ウィンドウ関数ROWNUM

/*
SQL実践P227ウィンドウ関数ROWNUM

Classごとに順番を出力する。これを使えばクラスグループごとに順番を表示できる。
*/
CREATE TABLE Weight2(
	class Integer NOT NULL,
	student_id char(4) NOT NULL,
	weight integer NOT NULL
	--PRIMARY KEY(class,student_id)
)

INSERT INTO Weight2 VALUES(1,'100',50),
(1,'101',60),
(1,'102',70),
(2,'100',150),
(2,'101',50),
(3,'100',50)

SELECT CLASS,student_id ,
	ROW_NUMBER() OVER (ORDER BY class,student_id) as seq
	FROM Weight2
	/*この場合は全体で連番にする
CLASS	student_id	seq
1	100 	1
1	101 	2
1	102 	3
2	100 	4
2	101 	5
3	100 	6
*/

--Classごとに順番を出力する。これを使えばクラスグループごとに順番を表示できる。
SELECT CLASS,student_id ,
	ROW_NUMBER() OVER (PARTiTION BY class ORDER BY class,student_id) as seq
	FROM Weight2
/*
CLASS	student_id	seq
1	100 	1
1	101 	2
1	102 	3
2	100 	1
2	101 	2
3	100 	1
*/



--DELETE FROM Weight2--行削除
--DROP TABLE Weight2--テーブル自体削除

こちらの記事もどうぞ