![](/img/trans.png)
[英]In standard SQL, how do I select rows such that for each unique value in one column, all of the values in another column are a specified value?
[英]SQL: How to check for each unique value in one column how many combinations of another column can be found
在 SSMS 工作。 根据一列中的值,我想计算另一列中不同出现的次数。 我将如何 go 这样做?
基本上对于第 1 列中的每个唯一值,可以找到第 2 列的多少种组合?
因此,如果表如下所示:
第 1 列 | 第 2 栏 |
---|---|
一个 | 1 |
一个 | 1 |
一个 | 1 |
乙 | 1 |
乙 | 2 |
乙 | 3 |
C | 2 |
C | 2 |
C | 3 |
所需的 output 将是:
A = 1
B = 3
C = 2
在这种情况下使用COUNT(DISTINCT)
和GROUP BY
:
SELECT Col1, COUNT(DISTINCT Col2)
FROM YourTable
GROUP BY Col1
WITH CTE(Column1,Column2) AS
(
SELECT 'A', 1 UNION ALL
SELECT 'A' , 1 UNION ALL
SELECT 'A' , 1 UNION ALL
SELECT 'B' , 1 UNION ALL
SELECT 'B' , 2 UNION ALL
SELECT 'B' , 3 UNION ALL
SELECT 'C' , 2 UNION ALL
SELECT 'C' , 2 UNION ALL
SELECT 'C' , 3
)
SELECT C.COLUMN1,COUNT(DISTINCT C.COLUMN2)CNTT
FROM CTE AS C
GROUP BY C.Column1
CTE 是您提供的示例。 请用您的表格替换对它的引用
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.