这里的问题很简单,但我没有任何数据可以测试,所以我不确定它是否正确。
假设我有一张看起来像这样的桌子:
+---------+---------+
| ColumnA | ColumnB |
+---------+---------+
| 1 | a |
| 2 | a |
| 3 | a |
| 3 | b |
| 4 | a |
| 5 | a |
| 6 | a |
| 6 | b |
| 6 | c |
| 7 | a |
+---------+---------+
我想为每一列a计算b列中不同项目的数量。
因此,结果表如下所示:
+---------+---------+
| ColumnA | Count |
+---------+---------+
| 1 | 1 |
| 2 | 1 |
| 3 | 2 |
| 4 | 1 |
| 5 | 1 |
| 6 | 3 |
| 7 | 1 |
+---------+---------+
我该怎么做?
我一直在尝试这样的东西:
dense_rank() over (partition by ColumnA order by ColumnB) count
您可以将GROUP BY
和COUNT
与DISTINCT
:一起使用
SELECT ColumnA, COUNT(DISTINCT ColumnB) AS [Count]
FROM MyTable
GROUP BY ColumnA
dbfiddle.uk上的演示