首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >把团购和窗口功能结合起来?

把团购和窗口功能结合起来?
EN

Stack Overflow用户
提问于 2020-03-26 05:12:13
回答 1查看 94关注 0票数 1

我正试图找出如何将组与窗口函数组合起来。

我有个字段

代码语言:javascript
复制
timestamp track_name 

其中时间戳表示播放轨道的时间。

如果我想得到每天播放最多的曲目,我该怎么做呢?

我需要按日期(时间戳)和分组的track_name计数。

但不知道该怎么做,按计数分组,然后得到最多的那一天?

索尼克斯!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-03-26 05:18:31

当然,您可以将分析函数与GROUP BY查询混合使用。在下面的查询中,我根据日期和跟踪名称进行聚合,但也根据聚合计数生成一个级别。对于每个日期,具有最高等级的轨道将被保留。请注意,我使用的是RANK,而不是ROW_NUMBER,因为前者可以处理两个或多个曲目在一天中被绑在最多数量的曲目上的可能性。

代码语言:javascript
复制
WITH cte AS (
    SELECT DATE(timestamp) AS dt, track_name,
        RANK() OVER (PARTITION BY DATE(timestamp) ORDER BY COUNT(*) DESC) rnk
    FROM yourTable
    GROUP BY DATE(timestamp), track_name
)

SELECT dt, track_name
FROM cte
WHERE rnk = 1;

这是因为分析函数是在GROUP BY完成后计算的。因此,COUNT(*)可以用于对RANK()的调用。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60861355

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档