ORACLE分組排序后獲取第一條和最后一條值


Oracle數據庫,分組排序后取第一條數據

數據格式

 分組取第一條的效果

SELECT *       
    FROM (SELECT ROW_NUMBER() OVER(PARTITION BY x ORDER BY y DESC) rn,       
          test1.*       
          FROM test1)       
   WHERE rn = 1  ;   
Oracle數據庫,分組排序后取第一條數據和最后一條,並且拼接名稱
select id,wm_concat(name) as qsgt from (
  select id,name from (-- 分組排序取出第一條和最后一條
    select
    t1.id,
    t1.name,
    row_number() over(PARTITION BY t1.id order by t1.name) rowss1,--第一條
    row_number() over(PARTITION BY t1.id order by t1.name desc) rowss2--倒數第一條
    from t_test t1
    where t1.pid= '0'
  )
  where rowss1='1' or rowss2='1'
) GROUP BY id

 不分組的話去掉    

PARTITION BY t1.id 

 就行


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM