over partition by与group by 的区别
生活随笔
收集整理的這篇文章主要介紹了
over partition by与group by 的区别
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
遇到這么一個需求,需要根據分類為數據庫記錄添加排序行,就像一個客戶有多個訂單,每個訂單有若干產品,需要給每個訂單的產品明細做一個默認排序。
通過學習 PARTITION BY 解決了問題:
update brands set orderindex=a.row1from (select row_number() over(PARTITION BY cate.id order by cate.createdate) row1,cate.name,b2.name as bname,b2.customcategoryid,b2.id as brandid from brands b1 inner join customcategory cate on b1.id=cate.brandidinner join brands b2 on cate.id=b2.customcategoryidwhere b1.id='ab209c03-ecf7-49c2-af0f-62c66e82d412') awhere brands.id=a.brandidpartition by與group by都是分組,究竟有何具體的區別呢?
group by我們平時用的比較多,經常與聚合函數比如:Sum() Max() Min() Count() Avg()等一起使用。group by 就是對結果進行單純分組計算,?group by更強調的是一個整體,就是組,只能顯示一個組里滿足聚合函數的一條記錄。
partition by 在整體后更強調個體,能顯示組里所有個體的記錄。用于給結果集分組。
轉載于:https://www.cnblogs.com/chenxizhaolu/p/8718433.html
總結
以上是生活随笔為你收集整理的over partition by与group by 的区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【面向对象设计与构造】第一次博客作业
- 下一篇: nyoj 探寻宝藏