我正在尝试在sql中编写一个查询,它给出了不同的Pan详细信息以及表中名称多次出现的Pan的计数
例如:考虑下表
ID Name Pan
1 ABC 123
2 ABC 123
3 DEF 456
4 ABC 124
5 WW 234
6 WW 2345
预期结果是:
Pan Name Count1
123 ABC 2
124 ABC 1
234 WW 1
2345 WW 1
有人可以帮我解决这个问题。
答案 0 :(得分:2)
试试这个。希望以下声明可以帮助你。
SELECT PAN, NAME , COUNT(ID) FROM TAB_PAN GROUP BY PAN, NAME HAVING COUNT(ID)>1
根据谈话,要求似乎有所不同。 以下代码可以正常工作。
给定数据的模式
SELECT * INTO #TAB FROM (
SELECT 1 ID , 'ABC' NAME , 123 PAN
UNION ALL
SELECT 2, 'ABC', 123
UNION ALL
SELECT 3 , 'DEF' ,456
UNION ALL
SELECT 4 , 'ABC', 124
UNION ALL
SELECT 5 , 'WW' , 234
UNION ALL
SELECT 6 , 'WW' ,2345
)AS A
所需案例的逻辑
SELECT PAN, NAME,COUNT(ID) ACTUAL_COUNT FROM #TAB t
WHERE (SELECT COUNt(NAME) FROM #TAB WHERE NAME= t.NAME) >1
GROUP BY PAN, NAME
答案 1 :(得分:1)
SELECT DISTINCT x.*
FROM
( SELECT pan
, name
, COUNT(*) total
FROM my_table
GROUP
BY pan
, name
) x
JOIN my_table y
ON y.name = x.name
AND y.pan <> x.pan