mysql 我使用排序進行篩選,保證分組、排序之後我的第一條資料就是我要的資料
select a.code ,
a.type as 班型 ,max(a.num)
from
( select
*from
cent_ylb_numclass
group by
code,
type
order by
code,
num desc
) as a
group by
`code`
oracle 使用開窗函式。根據序號取數即可
語法:
row_number() over(partition by column1 order by column2 [desc])
根據column1分組,根據column2排序
此次我們需要根據教師編碼code進行分組,教師編碼()code)和教師課程分組數(count(課程分組))降序排序
我們需要確定某個教師教的最多的課程是哪乙個
select
localtable.教師編碼 as 教師編碼,localtable.課程 as 分組
from
(select
tablebiao.教師編碼 as 教師編碼,
tablebiao.教師姓名 as 教師姓名 ,
tablebiao.課程分組 as 課程,
count(tablebiao.課程分組) as num,
row_number () over (
partition by tablebiao.教師編碼,
tablebiao.教師姓名
order by
tablebiao.教師編碼,
count(tablebiao.課程分組) desc
) as rn
from
tablebiao
group by
tablebiao.教師編碼,
tablebiao.教師姓名,
tablebiao.課程分組
order by
tablebiao.教師編碼,
count(tablebiao.課程分組) desc
) localtable
where
localtable.rn = 1
group by分組取組內第一條
舉個例子 student表 select from student id name age gender 1 張三丰 16 12 滅絕師太 17 03 掃地僧 18 14 楊逍 19 1按照gender進行分組,獲取每個組內年齡最大的,很明顯gender為1的age應該是19,但是事實卻不是 sel...
Oracle分組,取每個分組的第一條資料
最近有個有個業務需求 springboot專案集合mybatis 需要查詢分組後,取每組的第一條資料 oracle資料庫 可以在業務 中實現,但是過於繁瑣,後來查閱oracle的函式,得出僅僅在sql中即可實現,非常簡潔,簡化 sql如下 select from select t user.row ...
排序後分組取每個分組的第一條資料
select p1.from select from table p0 where p0.種類編號 in 10066656,10115244 order by p0.asc,p0.主鍵id desc limit 1000000 p1 group by p1.種類編號 因為group by無法放到or...