zoukankan      html  css  js  c++  java
  • over partition by与group by 的区别

      遇到这么一个需求,需要根据分类为数据库记录添加排序行,就像一个客户有多个订单,每个订单有若干产品,需要给每个订单的产品明细做一个默认排序。

      通过学习 PARTITION BY 解决了问题:

     update brands set orderindex=a.row1
     from 
     (
        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.brandid
                                               inner join brands b2 on cate.id=b2.customcategoryid
        where b1.id='ab209c03-ecf7-49c2-af0f-62c66e82d412'
     ) a
     where brands.id=a.brandid

      partition by与group by都是分组,究竟有何具体的区别呢?

      group by我们平时用的比较多,经常与聚合函数比如:Sum() Max() Min() Count() Avg()等一起使用。group by 就是对结果进行单纯分组计算, group by更强调的是一个整体,就是组,只能显示一个组里满足聚合函数的一条记录。

      partition by 在整体后更强调个体,能显示组里所有个体的记录。用于给结果集分组

  • 相关阅读:
    inflate
    【Android布局】在程序中设置android:gravity 和 android:layout_Gravity属性
    安卓延时执行代码
    Listview控件
    安卓的progress
    android studio的弹出层
    解决mysql的日志文件过大的问题
    linux查文件大小
    乔坟往事-姑妄言之
    乔坟往事-村里人家
  • 原文地址:https://www.cnblogs.com/chenxizhaolu/p/8718433.html
Copyright © 2011-2022 走看看