author:[email protected]
情境:只查詢某個條件下的n條件記錄,如每個分類下查詢(前)5條
例:(相同商戶號只查5條)
select *
from (select t.mer_code,
t.li_goods_name,
t.li_id,
dense_rank() over(partition by t.mer_code order by t.li_id) rk
from yd_mer_listing t)
where rk < 6
說明:rank()的排名是按over()內order by決定的,如果order by的字段值是一樣的,那麼rank()排名也一樣。
優勢:如果用in語句,如 … where t.li_id in (select li_id from yd_mer_listing m where rownum < 6 and m.mer_code = t.mer_code and m.li_state = '3' )…效率會很低
mysql分組排名 mysql分組排名
1.建立表並寫入測試資料 create table tb rank score city varchar 20 score int insert into tb rank score values sz 89 insert into tb rank score values sz 76 insert...
Sql排名和分組排名
在很多時候,都有排名這個功能,比如排行榜,並且還需要分頁的功能,一般可以再select的時候按照某一字段 oorder by xx desc,這樣limit 查詢就可以得到排名資訊,但是有時候是需要多表連線,或者是有乙個隨機檢視,在頁面上並不是按照排名公升降序。這個時候就需要用sql來實現排名。先準...
sql分組排名
資料庫teradata 班級科目成績表 create multiset table pd portal.aaa no fallback no before journal,no after journal,checksum default banji varchar 40 character set...