MySql中取出每一個分組中的前N條記錄

需求是這樣的(CSDN上的一個問題):mysql中有個表:article(字段:id,type,date),type有1-10,10種類型。如今要用SQL找出每種類型中時間最新的前N個數據組成的集合。mysql

這個問題應該有不少方法能夠實現,下面就來講說在網上看到的一位高手的實現(用一條SQL語句實現的,我的感受很是好,因此拿來和你們分享sql

select
	a1.*
from
	article a1
inner join(
		select
			a.type,
			a.date
		from
			article a
		left join article b on
			a.type = b.type
			and a.date <= b.date
		group by
			a.type,
			a.date
		having
			count( b.date )<= 2
	) b1 on
	a1.type = b1.type
	and a1.date = b1.date
order by
	a1.type,
	a1.date desc
相關文章
相關標籤/搜索