T-SQL 如何选择一列值的计数,而另一列的值相同

晚祷安斯塔斯

如何选择零件相同的标签数量?

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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

T-SQL选择重复的行,其中至少一列具有值

SQL根据另一列中的值从一列中选择值

sql:使用单个查询在另一列中选择具有相同列值的行

SQL:一列中与另一列相关的值计数

基于同一表中另一列的值更新(重命名)列的值-T-SQL

SQL:为另一列选择不同的值

如何根据另一列 SQL 中的值创建具有计数值的新列

SQL如何基于另一列中的值在一行中多次选择列

如何根据t-sql中的条件对一列的值进行分组?

在另一列中选择 id 相同但值不同的行 - SQL Server

基于一列的最大值和另一列的特定ID的SQL选择

SQL:如何根据SQL中另一列中的值范围对一列求和?

如何通过SQL中的另一列选择具有MAX(列值),DISTINCT的行?

如何在基于另一列的一列中累积SQL中的值?

php,sql-如何更改一列的值并将其插入另一列

如何根据SQL中另一列的值过滤一列

在标准SQL中,如何选择行,以便对于一列中的每个唯一值,另一列中的所有值都是指定值?

在 SQL 中,如何选择在另一列中没有零值的最新日期

如何根据一列值是否只有一条记录来过滤NULL,T-SQL

t-sql 选择两列之间的最大值,或者当第二列为空时选择第一列

SQL选择与另一列中的多个值匹配的列的值?

SQL:一旦被另一列分区,则从非唯一列值中选择行

SQL-从一列中选择唯一值,然后根据另一列进行过滤

Oracle SQL:获得基于另一列的不同列值的计数

SQL:对第一个条件为true的行进行计数,其中column =一个值,另一列与该组中的值相同?

SQL / Postgres:查找具有相同值的元组(对于另一列中的给定值)

sql计算两个值从另一列共享相同值的次数

T-SQL仅使用变量中的值而不是一列将行的副本从一个表插入到另一个表

选择时,SQL基于另一列的值将一列的值更改为空白