嗨,大家好,我有下面的表格数据,请帮助我如何达到这个结果
AutoID Quantity
1 2
2 2
3 2
4 7
5 7
6 2
7 2
使用min
和max
:
Select Min(AutoID) as AutoIDMin, Min(AutoID) as AutoIDMax, Quantity
from table1 GROUP By Quantity
我的结果是:
AutoIDMin - AutoIDMax - Quantity
1 7 2
4 5 7
我要实现的目标如下:
AutoIDMin AutoIDMax Quantity
1 3 2
4 5 7
6 7 2
希望您能够帮助我。
使用ROW_NUMBER
s的差:
WITH Cte AS(
SELECT *,
grp = ROW_NUMBER() OVER(ORDER BY AutoID)
- ROW_NUMBER() OVER(PARTITION BY Quantity ORDER BY AutoID)
FROM tbl
)
SELECT
AutoIDMin = MIN(AutoID),
AutoIDMax = MAX(AutoID),
Quantity
FROM Cte
GROUP BY grp, Quantity
ORDER BY AutoIDMin
这是杰夫·摩登(Jeff Moden)撰写的关于岛屿分组的文章:连续日期分组岛
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句