窗口函数

窗口函数也称为OLAP函数

  • 窗口函数的语法
    <窗口函数> over (
    [partition by 列清单】
    order by <排序用列清单>
    )
  • 能够作为窗口函数使用的函数
    聚合函数(sum,acg,count,max,min)
    rank,dense_rank,row_number等着专用窗口函数
  • rank函数
    select shohin_mei, shohin_bunrui, hanbai_tanka ,
    rank() over (partition by shohin_bunrui
    order by hanbai_tanka ) as ranking
    from Shohin;
    • partition by 是对排序对象进行分组
    • order by 是进行组内排序。
      窗口函数兼具分组和排序两种功能。
      通过partition by 分组后的记录集合称为窗口
  • rank函数
    计算排序时,如果存在相同位次的字句,则会跳过之后的位次
  • dense_rank
    计算排序时,即使存在相同位次的记录,也不会跳过之后的位次。
  • row_number函数
    直接排序下去,不管其他条件
  • 窗口函数只能在select字句中使用,不能在where和group by字句中使用。
  • 作为窗口函数使用聚合函数
    select shohin-_id ,shohin_mei , hanbai_tanka,
    sum (hanbai_tanka) over (order by shohin_id) as current_sumn
    from Shohin;
    按照排序一个个加起来
    avg类似

你可能感兴趣的:(窗口函数)