在上一个问题中,我需要计算一个变量出现的次数。
提供的代码如下:
SELECT
[Date], Code,
[Count] = COUNT(*) OVER (PARTITION BY Code ORDER BY [Date] ROWS UNBOUNDED PRECEDING)
FROM dbo.YourTable
ORDER BY [Date];
但是,现在我需要对该代码进行改进:
假设我有下表:
Date | Code
------------------------
2010/01/01 | 25
2010/01/01 | 22
2010/01/01 | 23
2010/01/01 | 25
2010/01/02 | 23
2010/01/02 | 23
2010/01/03 | 23
2010/01/04 | 23
2010/01/05 | 23
2010/01/06 | 23
2010/01/07 | 23
.....
2013/03/02 | 21
现在,我需要计算特定时间段内的出现次数。期望的输出如下(为简单起见,假设时间范围为n = 2天)
Date | Code | Occurrences
------------------------------------
2010/01/01 | 25 | 1
2010/01/01 | 22 | 1
2010/01/01 | 23 | 1
2010/01/01 | 25 | 2
2010/01/02 | 23 | 2
2010/01/02 | 23 | 3
2010/01/03 | 23 | 3 -> We are not considering the occurence in 2011/01/01 as it is out of the scope now
2010/01/04 | 23 | 2 -> Considers only occurrences in 01/03 and 01/04
2010/01/05 | 23 | 2
2010/01/06 | 23 | 2
2010/01/07 | 23 | 2
.....
2013/03/02 | 21 | 1
也就是说,我需要知道在过去的“ n”个月中,代码“ x”在我的表中出现了多少次。
它在SQL Server 2012中运行。
先感谢您。
将选项与CTE,CROSS
APPLY
运算符和ROW_NUMBER排序功能一起使用
;WITH cte AS
(
SELECT [Date], Code
FROM dbo.YourTable
GROUP BY [Date], Code
)
SELECT c.Date, c.Code, o.Occurrences
FROM cte c
CROSS APPLY (
SELECT t2.[Date], t2.Code,
ROW_NUMBER() OVER(PARTITION BY c.[Date] ORDER BY t2.[Date]) AS Occurrences
FROM dbo.YourTable t2
WHERE c.Code = t2.Code
AND DATEDIFF(day, t2.[Date], c.[Date]) BETWEEN 0 AND 1
) o
WHERE c.Code = o.Code AND c.[Date] = o.[Date]
ORDER BY c.[Date]
关于 SQLFiddle的 演示
为了提高性能,请使用此索引
CREATE INDEX x ON dbo.YourTable([Date], Code)
问题内容: 嗨,我有一张看起来像这样的桌子 我想要按周分组的页面视图聚合,但显示过去30天的聚合-(每周滑动窗口聚合,窗口大小为30天) 我正在使用Google bigquery 编辑:戈登-对您的“客户”发表评论,实际上我需要的是稍微复杂一点的,这就是为什么我在上表中包括客户的原因。我希望获得每周30天的浏览量> n的客户数量。像这样的东西 但是,为了简单起见,如果我能够获得页面浏览量的滑动窗口
假设我有一个每1分钟开始的2小时窗口。下一步是应用GroupBy转换。 如果能解释这一点,我将不胜感激。无法真正找到相关信息
我们正在使用kafka streams的windows join连接2个流,我们想知道: 为什么KS要在内部主题上增加24小时?例如,我们有一个1小时的窗口,但内部主题保留25小时。我们可以将其配置为不添加这些24小时吗 [更新] 例如,我们创建JoinWindow如下: 虽然我可以看到内部主题(JOINTHIS和OUTEROTHER)是用 这是刚刚在我的机器上的一个空代理(使用confluent
介绍 将TCP与UDP这样的简单传输协议区分开来的是它传输数据的质量。TCP对于发送数据进行跟踪,这种数据管理需要协议有以下两大关键功能: 可靠性:保证数据确实到达目的地。如果未到达,能够发现并重传。 数据流控:管理数据的发送速率,以使接收设备不致于过载。 要完成这些任务,整个协议操作是围绕滑动窗口确认机制来进行的。因此,理解了滑动窗口,也就是理解了TCP。 更多信息 TCP面向流的滑动窗口确认机
我们正在使用Kafka流的会话窗口来聚合相关事件的到达。除了聚合之外,我们还使用API指定窗口的保留时间。流信息: 会话窗口(非活动时间)为1分钟,传递到的保留时间为2分钟。我们使用定制的来映射事件的时间。 示例: 事件:e1;事件时间:上午10:00:00;到达时间:下午2点(同一天) 事件:e2;事件时间:上午10:00:30;到达时间:下午2:10(同一天) 第二个事件的到达时间是e1到达后
NowCoder 题目描述 给定一个数组和滑动窗口的大小,找出所有滑动窗口里数值的最大值。 例如,如果输入数组 {2, 3, 4, 2, 6, 2, 5, 1} 及滑动窗口的大小 3,那么一共存在 6 个滑动窗口,他们的最大值分别为 {4, 4, 6, 6, 6, 5}。 解题思路 // java public ArrayList maxInWindows(int[] num, int size)