这个 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 窗口函数有啥作用?的主要内容,如果未能解决你的问题,请参考以下文章

winform Load有啥作用

SQL窗口函数

SQL窗口函数

SQL窗口函数

SQL窗口函数

窗口函数在 pd.read_sql 中不起作用;它显示错误