我有这个数据集,例如:
<表类>
名称
版本
tbody><<tr>第一个 1.2.1 " 第一个 1.2.2 第二 1.2.0 第二 1.2.2 3 1.3.1 3 1.3.2 第五 1.0.1 第五 1.2.2 第四道明> 第四 1.2.2 表类>
在Spark SQL上,您可以使用transform
来获得一个整数数组,例如[1, 12, 0]
为1.12.0
,然后您可以获得每个名称的最大数组,并将它们与.
连接以获得原始版本号。
select
Name,
concat_ws('.', max(transform(split(Version, '\.'), x -> int(x)))) as Version
from mytable
group by Name
您可以在您的查询中使用HierarchyId
in。
select Name,Max(Version) as Version from table order by
CAST('/'+Version+'/' as hierarchyID)
此解决方案应适用于SQL server2008