首页 > 其他分享 >GROUPBY 和开窗函数执行顺序的问题

GROUPBY 和开窗函数执行顺序的问题

时间:2024-09-13 17:52:00浏览次数:8  
标签:顺序 SUM RANK GROUPBY price 开窗 seller id SELECT

  SELECT seller_id FROM 
(SELECT seller_id , RANK() OVER(ORDER BY SUM(price) DESC) AS r
FROM Sales GROUP BY seller_id) s
WHERE s.r=1;

作者:SunnyCCCh
链接:https://leetcode.cn/problems/sales-analysis-i/solutions/868818/partition-by-he-group-by-de-shi-yong-qu-nts8m/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。    

SELECT seller_id FROM 
(SELECT seller_id , RANK() OVER(PARTITION BY seller_id ORDER BY SUM(price) DESC) AS r
FROM Sales ) s
WHERE s.r=1;

作者:SunnyCCCh
链接:https://leetcode.cn/problems/sales-analysis-i/solutions/868818/partition-by-he-group-by-de-shi-yong-qu-nts8m/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


--案例1  这个案例等于是将  
  
SELECT SELLER_ID ,
         SUM(PRICE),
         DENSE_RANK() OVER( ORDER BY  SUM(PRICE) DESC ) RN --不分区. 留意最下面有group by ,groupby级别高于开窗函数计算顺序这个是重点.
FROM SALES A
GROUP BY  SELLER_ID


--如下结果:

| seller_id | sum(price) | dense_rank() over(  order by sum(price) desc ) |
| --------- | ---------- | ---------------------------------------------- |
| 1         | 2800       | 1                                              |
| 3         | 2800       | 1                                              |
| 2         | 800        | 2                                              |

 

标签:顺序,SUM,RANK,GROUPBY,price,开窗,seller,id,SELECT
From: https://www.cnblogs.com/mengbin0546/p/18412649

相关文章

  • 成长的底层逻辑:why-how-what 思考顺序
    为什么明明知道,却改不了?为什么别人听不明白我说的啥?如何让自己的成长更快速,而非像网游里打怪攒经验线性升级。why、how、what的思考方式,让我在这些问题上看到了答案。不仅如此,使用了这个思考方式之后,我对阳明心学、西方个人发展类书籍也有了更深层次的理解。我认为它是非常强......
  • vue3 判断浏览器打开窗口页签变化
       场景:当需要同时打开两个页签,需要在切换页签的时候,重新获取数据    根据document.visibilityState结果判断。如果为visible则证明回到当前页签, 如果为hidden则证明当前页面未显示(前往了其他页签)import{onMounted,onUnmounted}from'vue';consthan......
  • Unity实现自己的协程系统(协程有顺序)
    你的类可以在不继承Mono的脚本使用协程,但本质仍然需要借助其他Mono对象的Update来调度        实现了一个有执行顺序的协程的调度器,用于在Unity中管理多个协程的执行。通过ICoroutineNodeOrder和ICoroutineWaitCondition两个接口,可以定义每个协程的执行状态、......
  • dotnet 测试 SemaphoreSlim 的 Wait 是否保持进入等待的顺序先进先出
    本文记录我测试dotnet里面的SemaphoreSlim锁,在多线程进入Wait等待时,进行释放锁时,获取锁执行权限的顺序是否与进入Wait等待的顺序相同。测试的结果是SemaphoreSlim的Wait大部分情况是先进先出,按照Wait的顺序出来的,但是压力测试下也存在乱序,根据官方文档说明不应该依......
  • dotnet 测试 Mutex 的 WaitOne 是否保持进入等待的顺序先进先出
    本文记录我测试dotnet里面的Mutex锁,在多线程进入WaitOne等待时,进行释放锁时,获取锁执行权限的顺序是否与进入WaitOne等待的顺序相同。测试的结果是Mutex的WaitOne是乱序的,不应该依赖Mutex的WaitOne做排队顺序以下是测试程序代码vartaskList=newList<Task>();......
  • 数据结构:线性表的顺序表实现
    顺序表的操作:这里采用了结构体和指针的部分知识//自定义结构体typedefstruct{ DataTypelist[Maxsize]; intsize;}SeqList;voidListInitiate(SeqList*L){ L->size=0;}intListLength(SeqListL){ returnL.size;}//插入是从前往后移动intListInsert(Seq......
  • 类的执⾏顺序?
    在C#中,类的执行顺序取决于你如何组织和调用代码。以下是类中代码执行的一般顺序:静态构造函数:如果类包含静态构造函数,它将在类首次被引用时执行,且仅执行一次。静态构造函数常用于初始化静态成员。实例构造函数:当创建类的实例时,实例构造函数将被调用。如果类继承自......
  • Java中的线程优先级与调度:如何有效管理线程的执行顺序
    Java中的线程优先级与调度:如何有效管理线程的执行顺序大家好,我是微赚淘客返利系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿!在Java中,线程的优先级和调度策略对于高效管理线程执行顺序至关重要。通过合理地设置线程优先级和调度策略,可以有效地优化应用的性能和响应时间。本......
  • SQL执行顺序和逻辑
    SQL执行顺序和逻辑MySQL的执行顺序:  (9)SELECT  (6)SUM(聚合函数)  (10)DISTINCT<select_list>  (1)FROM<left_table>  (3)<join_type>JOIN<right_table>  (2)ON<join_condition>  (4)WHERE<where_condition>  (5)GROUP......
  • 顺序表之创建,判满,插入,输出
    文章目录......