Учитывая этот пример данных:
ID lname fname num
1 Jones Mary 672
2 Jones Mary 123
3 Johnson Ellen 853
4 Jones Mary 123
5 Jones Scott 342
6 Smith John 874
7 Anders David 433
8 Northson Sue 756
9 Fredricks George 555
10 Northson Sue 756
11 Northson Sue 756
12 Perry Nicole 335
11 Northson Sue 342
Я хочу найти все пары lname / fname, которые имеют несколько «num» и количество строк с этим значением «num».
Таким образом, набор результатов должен выглядеть следующим образом:
lname fname num count
Jones Mary 672 1
Jones Mary 123 2
Northson Sue 756 3
Northson Sue 342 1
Единственное, что я мог придумать, это ниже, но выборка в предложении where возвращает больше, чем строка
select
lname
,fname
,num
,COUNT(*)
from sampleTable
where
(num != (select x.num
from sampleTable x
where x.ID != sampleTable.ID
and x.fname = sampleTable.fname
and x.lname = sampleTable.lname)
)
group by lname, fname, num
--having count(num) > 1
order by lname, fname, num