问题标签 [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.

0 投票
1 回答
41 浏览

sql-server - 窗口函数和查询优化器

我有一个具有以下结构的表。

我有一个查询要在特定日期返回之前(包括)aNumber的 sum 是否> 0针对 each 。

所以这个查询会返回

现在我已经把 query 变成了 view myView。我想查询此视图的日期范围。我可以每天/每月/每年查询表格,但我希望能够从一个日期范围导出查询结果,然后导出/附加下一个日期范围的结果。

会回来

明年

应该返回

允许我将结果拼接在一起以获得原始的、未过滤的视图记录。


好的,现在舞台已经设置好,我对这种方法的担忧是,当我从视图中过滤日期时,它会影响窗口函数。

当我过滤 2019 年时,加窗总和是否仍包括 2018 年aNumber?我的日期范围过滤器会在总和之前应用于内部选择吗?

0 投票
1 回答
59 浏览

sql - SQL DENSE_RANK 和 PARTITION BY

我不完全理解以下列出的查询结果:

执行上述操作,我得到以下结果集:

结果集

根据我的理解,SELECT DENSE_RANK() OVER (PARTITION BY AccountID ORDER BY CompanyName) as AccountRANK, * FROM #tmpAccountsTable应该为所有相同的 AccountId 创建一个分区,并且它们应该收到相同的DENSE_RANK()值,但可以看出,情况并非如此。

我错过了什么?

0 投票
1 回答
577 浏览

mysql - 不能在 MySQL 工作台 8.0(MySQL 版本 5.7.31)中使用“over”子句

我很难看出我做错了什么。我注意到某些语法不起作用(我遇到了关键字“WITH”和现在“OVER”的问题。

我在具有 和 列的表上应用窗口id函数。我想选择一个集群的最高价格。这里我使用“max”函数作为玩具示例。(我真正想要的是所有价值中最大的价格。)priceclusteridcluster

我怀疑问题出在我的工作台或 mysql 版本上,但在网上搜索我的问题时还没有找到太多。

简单的窗口化(分析)MySQL 应用程序

0 投票
1 回答
45 浏览

sql - 何时以及如何在 PostgreSQL 中使用窗口函数?

我一直在 PostgreSQL 中学习窗口函数(例如 , OVER,子句) RANKPARTITION BY但仍然对何时以及如何使用它们以及结果输出意味着什么感到困惑?

有人对它们有一些总结性的解释吗?

示例:OVER()RANK()

0 投票
2 回答
798 浏览

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 排序(按升序)。
  • 行集中列的名称无关紧要,但它们的顺序很重要。

给定 具有以下结构的表事件:

例如,给定以下数据:

鉴于上述数据,输出应返回以下行集:

谢谢你。

0 投票
0 回答
26 浏览

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,并且认为也必须有一个“正常”的解决方案,我只是太盲目了,看不到它。

有什么聪明的主意吗?