我正在尝试使用Over Partition获取所有Distinct Case Sensitive值的Count。
我有以下数值:
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;
答案 0 :(得分:3)
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;
的 LiveDemo
强>