这个 SQL 窗口函数有啥作用?
Posted
技术标签:
【中文标题】这个 SQL 窗口函数有啥作用?【英文标题】:What does this SQL window function do?这个 SQL 窗口函数有什么作用? 【发布时间】:2021-03-27 04:44:24 【问题描述】:我想知道是否有人可以解释这部分代码的作用。我一直在尝试在各种地方查找,但从未找到合适的解释。
select
s.*
FROM
scorecomp s
WINDOW W as
(
PARTITION BY icustay_id
ORDER BY hr
ROWS BETWEEN 23 PRECEDING AND 0 FOLLOWING
)
上下文来自here。它从 MIMIC iii 数据库创建旋转(每小时)SOFA 和其他分数。从我所见,Window 函数被用作聚合器。但我不知道它在这里做什么。
编辑:经过更多阅读,现在我觉得Window函数没有任何作用,我很想知道这是否正确
【问题讨论】:
【参考方案1】:这不是窗口“功能”。这是named window frame definition。在您的查询上下文中,它什么也不做,因为它已定义但未使用。
您可以将它与窗口函数一起使用,例如:
select count(*) over w,
. . .
命名子句的优点是您可以将其用于多种功能,而不必担心规范中的错误:
select count(*) over w,
avg(x) over w,
max(x) over w,
【讨论】:
以上是关于这个 SQL 窗口函数有啥作用?的主要内容,如果未能解决你的问题,请参考以下文章