如何选择零件相同的标签数量?
Part | Label
------+-------
a | L1
a | L2
a | L3
b | L1
b | L2
预期成绩:
Part | LabelCount
------+------------
a | 3
b | 2
注意:所有数据类型都是字符串。我试过分区以获得最大行数,但 ROW_NUMBER() 上的 MAX 函数没有响应我一直在做的方式,无论我是否使用 MAX,它都只是返回所有行。
;WITH RowNumCTE AS
(
SELECT
[PartName],
ROW_NUMBER() OVER (PARTITION BY [Part] ORDER BY [Label] ASC) AS rn
FROM
[PartTable]
)
SELECT DISTINCT
[Part],
MAX([rn]) AS [LabelCount]
FROM
RowNumCTE
GROUP BY
[Part], [rn]
实际结果:
Part | LabelCount
------+------------
a | 1
a | 2
a | 3
b | 1
b | 2
我已经在 StackOverflow 中列出了类似的问题,就像这个一样,但不知道如何将答案应用于这种情况。
你似乎只想group by
:
select part, count(*) as labelcount
from t
group by part;
如果零件上有重复的标签,则:
select part, count(distinct label)
. . .
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句