如何计算多个行和同一列中的每个值?

问题描述 投票:1回答:2

我在计算每个标签的数量时遇到问题。

例如:

    tags
0  a,b,c,d
1  a,b
2  c,d
3  a,c

我的预期结果:

tags   count
  a      3
  b      2
  c      3
  d      2
sql database azure-sql-database ssms
2个回答
0
投票

欢迎使用StackOverFlow!

您有代码示例吗?您的标签显示“ SQL”,这就是我的假设。由于您没有给我们足够的信息来帮助您,因此我现在无法从您的问题中得到太多帮助。对于以后的问题,最好增加一些您已经尝试做的细节。

仍然,我发现此post是在计算列值的出现,因此它可以回答您的问题。如果需要,您可以随时编辑问题以使其清晰!


0
投票

您可以使用STRING_SPLIT实现此目的

SELECT
value, count(*) as countOfTags
FROM
(
VALUES
(0,  'a,b,c,d')
,(1,  'a,b'    )
,(2,  'c,d'    )
,(3,  'a,c'    )
) as t(id, tags)
CROSS APPLY 
string_split(tags,',')
GROUP BY value;

结果集

+-------+-------------+
| value | countOfTags |
+-------+-------------+
| a     |           3 |
| b     |           2 |
| c     |           3 |
| d     |           2 |
+-------+-------------+
© www.soinside.com 2019 - 2024. All rights reserved.