问题标签 [over-clause]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sql-server - 窗口函数和查询优化器
我有一个具有以下结构的表。
我有一个查询要在特定日期返回之前(包括)aNumber
的 sum 是否> 0
针对 each 。
所以这个查询会返回
现在我已经把 query 变成了 view myView
。我想查询此视图的日期范围。我可以每天/每月/每年查询表格,但我希望能够从一个日期范围导出查询结果,然后导出/附加下一个日期范围的结果。
会回来
明年
应该返回
允许我将结果拼接在一起以获得原始的、未过滤的视图记录。
好的,现在舞台已经设置好,我对这种方法的担忧是,当我从视图中过滤日期时,它会影响窗口函数。
当我过滤 2019 年时,加窗总和是否仍包括 2018 年aNumber
?我的日期范围过滤器会在总和之前应用于内部选择吗?
mysql - 不能在 MySQL 工作台 8.0(MySQL 版本 5.7.31)中使用“over”子句
我很难看出我做错了什么。我注意到某些语法不起作用(我遇到了关键字“WITH”和现在“OVER”的问题。
我在具有 和 列的表上应用窗口id
函数。我想选择一个集群的最高价格。这里我使用“max”函数作为玩具示例。(我真正想要的是所有价值中最大的价格。)price
cluster
id
cluster
我怀疑问题出在我的工作台或 mysql 版本上,但在网上搜索我的问题时还没有找到太多。
sql - 何时以及如何在 PostgreSQL 中使用窗口函数?
我一直在 PostgreSQL 中学习窗口函数(例如 , OVER
,子句) RANK
,PARTITION BY
但仍然对何时以及如何使用它们以及结果输出意味着什么感到困惑?
有人对它们有一些总结性的解释吗?
sql - Codility SqlEventsDelta(计算每个事件类型的最新值和第二个最新值之间的差异)
最近,我在 Codility 中练习代码练习。在这里您可以找到问题所在,它位于练习 6 - SQL 部分。刚开始测试看问题描述! SqlEventsDelta
问题定义:
我为 SQLite 中的SqlEventDelta问题编写了这个解决方案。它在本地工具中工作正常但是,它在网络工具中不起作用。
任何人都可以就如何解决这个问题提供任何建议吗?
※ 我在 Stackoverflow 中搜索了这个问题,我知道比我自己的方式更好的代码。 但是,如果可能的话,我想使用我自己的 SQLite 代码逻辑和功能。
它在我的本地工具(SQLite 版本 3.12.2 的数据库浏览器)上运行得很好,没有错误。
但是,在网络工具(Codility 测试编辑器-SQLite 版本 3.11.0)上无法运行,我收到以下错误。
SqlEventDelta问题:
编写一个 SQL 查询,对于已多次注册的每个 event_type,返回最新的(即时间上最近的)与第二个最新值之间的差值。
- 该表应按 event_type 排序(按升序)。
- 行集中列的名称无关紧要,但它们的顺序很重要。
给定 具有以下结构的表事件:
例如,给定以下数据:
鉴于上述数据,输出应返回以下行集:
谢谢你。
mysql - 具有基于参数的帧大小的 MySQL 窗口函数
我来自 MS SQL Server,我对 MySQL / MariaDB 10 比较陌生(至少比“SELECT * FROM [Table]”更深入)。我现在在 Google 和 StackOverflow 中搜索了几个小时,但我还没有找到解决问题的方法。如果它以任何方式相关:我使用 MySQL Workbench 来编写我的代码。
的背景
我有一个新的数据记录项目,用于保存和显示房屋内多个温度和湿度传感器的数据。我将其保存在下表中:
ID | 时间 | 设备 | 温度 | 湿度 |
---|---|---|---|---|
1 | 2022-01-09 13:34:00 | 1 | 20.1 | 52.3 |
2 | 2022-01-09 13:35:00 | 1 | 20.0 | 52.3 |
3 | 2022-01-09 13:36:00 | 1 | 20.1 | 52.4 |
4 | 2022-01-09 13:37:00 | 1 | 20.1 | 52.5 |
5 | 2022-01-09 13:38:00 | 1 | 20.0 | 52.5 |
6 | 2022-01-09 13:39:00 | 1 | 20.1 | 52.6 |
我使用存储过程查询图表所需的数据。尤其是 0.1°C 舍入温度值的缺点是,当温度相当稳定时,它们自然经常在 0.1 值之间变化。所以我想到了一个移动平均线来平滑过去 10 分钟的值,它与平均窗口函数完美配合。
这是我的程序的简化版本:
挑战
现在我想我让最终用户决定窗口的大小,即过去 5、10、30、60 分钟的平均值。但是当我尝试在窗口函数中插入参数时,会导致错误:“ averageRows is not valid at this position ”。
这里的代码:
我想可以使用动态 SQL 来解决这个问题,但我尽量避免使用动态 SQL,并且认为也必须有一个“正常”的解决方案,我只是太盲目了,看不到它。
有什么聪明的主意吗?