我正在尝试获得SQL Server中所有类似值的组号。
这是我的结果集:
Values SortOrder
------------------------------
test note 1 1
test note 1 2
test note 3 3
test 10 4
test 10 5
test 11 6
我正在尝试获得以下结果集:
Values SortOrder Group
------------------------------------------
test note 1 1 1
test note 1 2 1
test note 3 3 2
test 10 4 3
test 10 5 3
test 11 6 4
我尝试了各种技术,如Dense_Rank, Rank, NTile等,但每次组号都是一个运行的数字系列。
Select
Dense_Rank() Over (Order By SortOrder) Rank,
SortOrder,
Values from table where values is not null
任何帮助都将是非常感激的。
这看起来像是一个缺口岛问题—假设相同的值可能出现在不同组的连续行中。
我们可以通过每次值改变时增加一个窗口和来解决这个问题,如下所示:
select t.*,
sum(case when val = lag_val then 0 else 1 end) over(order by sortOrder) as grp
from (
select t.*, lag(val) over(order by sortOrder) lag_val
from mytable t
) t
Dense Rank可以用于该作业,但是您需要根据需要排序的列进行排序,只需稍微修改一下:
Select Dense_Rank() Over (Order By [Values]) Rank, SortOrder, [Values]
from table
where [values] is not null;
当然,这将数据排序为字符串,为了仅基于数字内容获得排名,您需要根据对进行排序。
我不太了解你的数据,但是根据提供的样本,你可以假设最后一个空格后面最右边的字符总是数值,在这种情况下,以下将给出你想要的排名:
select Dense_Rank() Over (Order By Try_Convert(int,Right([values], CharIndex(' ', Reverse([values]))))) Rank,
SortOrder, [Values]
from table
order by sortorder;
查看工作示例
为了按Values
分组,但也按最低的SortOrder
排序,我建议采用两步方法。首先使用带窗口的Min()
函数计算每组的最低SortOrder
,然后将其输入Dense_Rank()
,得到最终的Group
值。
Select [Values], SortOrder, Dense_Rank() Over(Order By GroupOrder) AS [Group]
from (
select [Values], SortOrder, Min(SortOrder) Over(partition By [Values]) GroupOrder
from @table
) A
order by sortorder;
查看此数据库<>提琴
相关内容
- Duplicate values listView - Android
- Aggregate values pandas
- 如何查找类为" values "的元素,并告诉我们该元素包含了什么在下面的页面https://the
- Spark error : parquet.column.values.dictionary.PlainValuesDi
- ARRAY:SORT 的 ECMA 规范中"non-existent property values"了什么
- Pandas APPLY - Dataframe has NULL values
- Python Dictionary Values into Key并追加其他键
- SQL 错误:"ORA-00947: not enough values"
- googlessheets .spreadsheets.values.append函数一遍又一遍地替换同一行,而不是创建
- python文件中的SQL查询显示为"COLUMNS"而不是"VALUES"
- VBA: Filter Data with Multiple Values
- Pandas: Flipping df-wide-values and index?
- Chronicle Values:返回数组而不是单个条目的getter
- GFS Grib Wind Values 解码和转换 (U & V)
- XDMP-ELEMRIDXNOTFOUND: cts:element-values——在MarkLogic 10 [Ma
- Pushing Values to Inner Array with Jolt
- values.yaml的Configmap中的Helm模板
- 插入…values(从SELECT ..来自…….
- 在values()子句中使用CASE WHEN插入新表- Snowflake SQL(经典web界面)
- Group Number for similar values
最新更新
- 在使用相同group_id的kafka消费者中使用assign而不是subscribe是否有影响? &
- 让谷歌的见解清楚地表明,我的网站上有不止一个页面
- 我无法在反应中删除 html 标签
- 获取/读取邮件消息并输出纯文本
- 显示:表格单元格与行号不对齐
- 如何使用Toga应用访问Android通知
- 访问create_template_view api时出现INVALID_REQUEST_BODY错误
- 使用预处理器条件生成C/ c++变量名
- 此处映射计算路线API上的错误414
- Oracle数据库中的并行提示
- woocommerce在每个类别结帐后自定义重定向
- 是否有可能在AWS中设置一个webhook来监控特定的电子邮件地址,并将接收到的电子邮件信息传递给Lambda?<
- 仅使用numpy实现CNN时出错
- 过程展开不规则时间序列
- 插入多个带别名的外键
- 如何从API响应中提取Array
- WebLogic 14c -性能调优测试
- Google-Drive-API文件没有使用FORM_ID找到
- 尝试创建一个伸缩盒容器,但它不会创建盒子并显示文本
- 是否有一种方法(最好是R)从BirdLife数据区自动提取信息?
- 为什么process.env.JWT_EXPIRE未被发现?js筑巢
- Python记录器没有从根记录器继承level
- 是什么导致了python的f字符串中"f "{a}""与"f "{a=}""之间的差异?
- 标题库使用介子
- 打印偶数的"count",而循环使用 if
- 为什么我要将数组转换为对象
- 通过共享操作符将可连接的Flux转换为Hot不工作
- 从演示文稿中删除所有空的/未使用的形状
- 破坏错误取决于变量的顺序
- c -试图编写一个MIPS汇编程序
热门标签:
javascript python java c# php android html jquery c++ css ios sql mysql arrays asp.net json python-3.x ruby-on-rails .net sql-server django objective-c excel regex ruby linux ajax iphone xml vba spring asp.net-mvc database wordpress string postgresql wpf windows xcode bash git oracle list vb.net multithreading eclipse algorithm macos powershell visual-studio image forms numpy scala function api selenium