我正在尝试使用过度分区来获取所有区分大小写的不同值的计数。
我有以下值(value)观:
FirstCol SecCol
A E
A E
A a
A e
我希望我的结果是:
SecCol FirstCol SecColCount
a A 1
e A 1
E A 2
我尝试使用下面的 OVER PARTITION 方法来实现此目的,但我通过查询得到以下结果:
SecCol FirstCol SecColCount
a A 1
e A 3
这是我尝试使用的查询:
SELECT Distinct SecCol, FirstCol, 'SecColCount' = count(SecCol) OVER (PARTITION BY SecCol)
FROM #LocalTempTable;
最佳答案
tempdb/db 的默认排序规则不区分大小写。请改为区分大小写:
SELECT DISTINCT
SecCol COLLATE sql_latin1_general_cp1_cs_as,
FirstCol,
[SecColCount] = COUNT(SecCol) OVER (PARTITION BY SecCol
COLLATE sql_latin1_general_cp1_cs_as)
FROM #LocalTempTable;
关于sql - Microsoft SQL 查询使用过度分区获取 DISTINCT 值的计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33832383/