问题标签 [partition-by]

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 投票
2 回答
34 浏览

sql - 如何从列中选择单个值并使用分区方式复制到另一列?

我想创建一个名为 NewHeight 的新列,它采用在 Height 列中找到的单个值并将其复制为所有相同的名称。这是我正在使用的查询。

这是我的输出:

这是所需的输出:

0 投票
1 回答
533 浏览

oracle - 使用具有不同值的 OVER..PARTITION BY

CALENDAR_ORG有以下列和数据

我想OVER..PARTION BY用来选择按BUSINESS_DAY分类的最大值UNIT_CODE

如果使用GROUP BY,它将是

SELECT MAX(BUSINESS_DAY) AS RUN_DATE FROM CALENDAR_ORG WHERE GROUP_NAME ='ANG' GROUP BY UNIT_CODE;
返回:

20150801 20150801

确实,我得到了 4 条20150801使用以下查询的记录OVER..PARTITION BY

SELECT MAX(BUSINESS_DAY) OVER (PARTITION BY UNIT_CODE) AS RUN_DATE FROM CALENDAR_ORG WHERE GROUP_NAME='ANG';

20150801 20150801 20150801 20150801

预期的结果应该是

20150801 20150801

0 投票
3 回答
1569 浏览

sql - 为几个分层组优化 SUM OVER PARTITION BY

我有一个如下表:

我需要找到SUM([Spend]不同的组如下:

  1. 整个表中所有行的总支出
  2. 每个区域的总支出
  3. 每个地区和国家组的总支出
  4. 每个地区、国家和广告客户组的总支出

所以我在下面写了这个查询:

但是对于只有 450K 行的表,该查询需要超过 15 分钟。我想知道是否有任何方法可以优化此性能。提前感谢您的回答/建议!

0 投票
1 回答
515 浏览

sql - SQL 运行总组与总阈值重置

我有桌子:

我想对它们进行分组,使组的总年龄不超过 10 岁。

我可以通过递归来做到这一点,但在较大的表上效率低下。

所以,我需要的输出将是:

有没有好的非递归解决方案?

编辑:试验#1:按照运行总计的思路思考,我得到了一张包含 CurrRunningTotal 和 RunningTotal 的表格,直到上一行。

我觉得使用 PreviousRunningTotal 当我的阈值被满足时我可以做一些魔法来获得一个带有填充的总数,即当阈值被超过时,将 10 添加到当前行以抵消总数。仍然接近但没有雪茄。

0 投票
1 回答
117 浏览

sql - 如何在sql中通过两列匹配生成行号分区

表1

我想要下面的结果

如果 ReOrder 与 Qty 不同,则在 reorder=Qty 之后日期将相同

0 投票
3 回答
2449 浏览

sql - 如何通过接受 NULL 值的查询进行分区?

我有一个需要PARTITION BY与 2 个字段一起使用的查询。我这样做是这样的:

问题是,country_id中使用的第二个聚合字段PARTITION BY,可以NULL,我需要ROW_NUMBER()总结一下。

row_number()只有在结果集中有相同id 的记录时才进行总结。如果有记录与and或相同and is country_id,我希望对其进行总结。idcountry_ididcountry_idNULL

有没有办法这样做?

0 投票
1 回答
34 浏览

sql-server - 带有日期计算的 SQL Server PARTITION BY

我正在尝试运行一些需要 PARTITION BY 但无法解决所需复杂性的 SQL。下面的数据被简化了,但想法是使用表格的前三列来找到第四列(我已经手动添加了值),同时还显示了表格中的其他列。

对于表中的每一个客户,只要在当前记录的查询日期之前小于28天,就需要统计该客户最后一次查询的天数,否则显示为NULL。还需要考虑可以通过更小的查询列值来打破的关系 - 较小的值被计为第一个。

提前致谢

0 投票
1 回答
310 浏览

java - 支持按查询分区的 HSQL 的内存数据库替代方案

处理 Spring Boot 应用程序测试用例。正在使用 hsql 内存数据库模拟 Oracle 数据库,但发现它不支持按查询分区并且失败并出现以下错误:

通过修改检查了分区,但我不想修改我的查询,而是使用支持我的查询的数据库。

哪个替代数据库将在这里工作?

0 投票
2 回答
508 浏览

sql - ORDER BY 在 PARTITION BY 函数中的作用是什么?

我有一个数据表,

当我执行以下查询时,我得到了错误的最大序列,但我得到了正确的最大有效日期。

询问:

输出:

如果我在查询中删除 order by,我会得到正确的输出。

询问:

输出:

我知道当我们使用 MAX 函数时,不需要使用 order by 子句。但是我很想知道 order by 如何在按功能分区中工作,以及为什么当我使用 order by 子句时它给出了错误的序列结果和正确的日期结果?

0 投票
2 回答
1503 浏览

sql - SQL 计算基于 Hive 列中先前值重置的累积总和

我正在尝试用这样的东西创建一个累积值

因此,问题基本上是在 VAL1 中的前一行的基础上继续在 CUMU_VAL2 列中将值加 1,但是当 VAL1 列中的前一个值为零时,此总和会重置。基本上,如果你在 excel 中这样做,那么 Cell(D3) 的公式是

我相信我应该能够做到这样,但是当先前的值为零时如何添加案例然后重置总和?