窗口函数和Group by

  • Post author:
  • Post category:其他


groupby在窗口函数前执行,窗口函数对分组后的结果集再开窗

比如下表

select
        lesson,
        count(*) over (partition by lesson) as count
 from test.test  group by lesson;

得到的

先分组得到

lesson=E的一组和lesson=Math的一组,在以lesson开窗,那每个窗口内就是自己分组聚合的一行数据.

执行以下sql

 select
        lesson,
        count(*) over (partition by count(score)) as count
 from test.test  group by lesson;

得到的

原本lesson=E的一组和lesson=Math的count(score)都为4,所以以count(score)开窗,他俩每组的唯一一行聚合结果就分到一个窗口中,再对开窗内的列聚合就为2.

实际遇见的少



版权声明:本文为m0_68415041原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。