sql分組最後一條
發布時間: 2025-02-04 03:38:24
『壹』 sql分組後取最大日期的記錄
用分析函數row_number來給分組內的記錄編號,然後取編號值為1的記錄即可。
select s.*
from (
select v.*, row_number() over (partition by b order by c desc) as order_num
from #b v
) s
where s.order_num = 1
『貳』 sql分組後取最大日期的記錄
select a.f_SPBM,a.f_kcsl
from tempTest a,
(
select f_SPBM,max(f_rq) f_rq
from tempTest
group by f_SPBM
) b
where a. f_SPBM = b. f_SPBM
and a.f_rq = b.f_rq
『叄』 SQL 分組記錄得到最後一個記錄值
問資料庫問題記得要說是什麼類型資料庫
DB2/ORACLE
SELECT t.*
FROM (SELECT a.*, ROW_NUMBER() OVER(PARTITION BY 分組欄位 ORDER BY 排序欄位 DESC) RK
FROM tab) t
WHERE t.rk = 1
SQL通用方法:
SELECT t.*
FROM tab t
WHERE NOT EXISTS (SELECT 1 FROM tab
WHERE xxx = t.xxx AND xxx = t.xxxx(分組那些欄位)
t.排序欄位 > 排序欄位)
『肆』 sql先分組後排序的問題
selectregtime,ccountfrom(selectregtime,ccount,row_number()over(partitionbycasewhenccount=0then0else1endorderbyregtime)rn,casewhenccount=0then0else1endrkfrom表)torderbyrkdesc,rn
或者:
selectregtime,ccount,row_number()over(partitionbycasewhenccount=0then0else1endorderbyregtime)fromtmp
orderbycasewhenccount=0then0else1enddesc
熱點內容