我需要根据多列(区域代码,分支代码和本例中的ID)获取不同的行,其中存在重复的列值。与行中的其他信息以及重复行的数量一起。例如:
ID Areacode Branch
--------------------------
1 100 200
1 101 200
2 102 201
2 102 201
3 103 200
我需要此查询才能返回
ID Areacode Branch Count
--------------------------------
1 100 200 1
1 101 200 1
2 102 201 2
2 102 201 2
3 103 200 1
我试过
SELECT Customer_ID,Areacode,Branch COUNT(*) as CNT
FROM Table1
GROUP BY Customer_ID,Areacode,Branch
这导致
ID Areacode Branch Count
--------------------------------
1 100 200 1
1 101 200 1
2 102 201 1
2 102 201 1
3 103 200 1
答案 0 :(得分:1)
使用COUNT
作为分析函数:
SELECT
Customer_ID, Areacode, Branch,
COUNT(*) OVER (PARTITION BY Customer_ID, Areacode, Branch) Count
FROM Table1;
我发现原始查询存在两个问题。一个是您按Customer_ID
而不是ID
进行分组。另一个是如果你聚合那么你将不会保留原始表中的所有行。将COUNT
与分区一起使用可以避免这种情况。
答案 1 :(得分:0)
SELECT Customer_ID, Areacode, Branch, COUNT(Areacode) as COUNT
FROM Table1
GROUP BY Areacode
请修改您的查询,我想这肯定会帮助您......