1. 程式人生 > >Oracle中的row_number()over()函式

Oracle中的row_number()over()函式

最近要實現一個功能,頭疼了半天,最終使用這個函式解決了

問題:

一個年級表

一個學生表

實現效果:

實現sql:

SELECT
	* 
FROM
	T_CLASS AA 
	LEFT JOIN ( 
		SELECT
			* 
		FROM
			( 
				SELECT
					STU_CLASS_ID
					, STU_AGE
					, ROW_NUMBER() OVER (PARTITION BY STU_CLASS_ID ORDER BY STU_AGE DESC) AS NUM 
				FROM
					T_STU
			) TT 
		WHERE
			TT.NUM = 1
	) BB 
		ON AA.CLASS_ID = BB.STU_CLASS_ID

最後出現的結果就是預期效果,此方案適用與Oracle.

--僅以筆記記錄工作中遇到的問題及解決方案