sql - SQL Server - 获取连续发生数据的计数
问题描述
如何获取 sql server 中数据的并发发生计数。让我通过一个例子来说明。
我有一个数据如下:
假设我的ID值为 2。在这里,我们可以看到NAME列具有该ID的值“Shyam”,并且值“Shyam”连续出现 3 次。现在我想计算不断发生的“Shyam”。如何在 SQL Server 上编写此查询?
解决方案
如果您开始id = 2
并且想要连续的名称数量,您可以使用row_number()
:
select count(*)
from (select t.*,
row_number() over (order by id) as seqnum,
row_number() over (partition by name order by id) as seqnum_name
from t
where id >= 2
) t
where seqnum = seqnum_name;
min(name)
如果您还想要名称,可以添加。
这是有效的,因为序列号仅对于名称相同的初始行是相同的。
推荐阅读
- firebase - 从 Firebase 云存储托管矢量切片
- python - 在 Python 3 中,当我将 .csv 文件作为附件发送时,它缺少行
- python - 有时在乒乓球比赛中球不会从球拍上反弹
- azure-functions - 如何使用 Azure 函数 Cosmos DB 触发器捕获更改?
- swift - 更改 TabView 指示器 SwiftUI
- python - 深度学习模型预处理中的关键错误
- python - 我可以使用 seaborn.countplot 来显示我的数据吗?
- php - 如何正确读取 php/laravel 中的文件?
- web-scraping - 使用请求抓取带有空格的 url
- c - 为什么 stdatomic.h 包含 atomic_uint_least16_t 和 atomic_uint_fast16_t 但不包含 atomic_uint16_t?