TSQL неверный счет HAVING - PullRequest
       6

TSQL неверный счет HAVING

1 голос
/ 05 октября 2011

Я использую SSMS 2008 и пытаюсь использовать оператор HAVING. Это должен быть очень простой запрос. Тем не менее, я получаю только одно возвращаемое событие, хотя есть множество дубликатов.

Я что-то не так делаю с выражением HAVING здесь? Или есть какая-то другая функция, которую я мог бы использовать вместо этого?

select
      address_desc,
      people_id
from 
      dbo.address_view
where people_id is not NULL
group by people_id , address_desc
having count(*) > 1

пример данных из address_view:

people_id                            address_desc
----------                           ------------
Murfreesboro, TN  37130          F15D1135-9947-4F66-B778-00E43EC44B9E
11 Mohawk Rd., Burlington, MA 01803 C561918F-C2E9-4507-BD7C-00FB688D2D6E
Unknown, UN  00000                    C561918F-C2E9-4507-BD7C-00FB688D2D6E
Jacksonville, NC  28546          FC7C78CD-8AEA-4C8E-B93D-010BF8E4176D
Memphis, TN  38133                    8ED8C601-5D35-4EB7-9217-012905D6E9F1
44 Maverick St., Fitchburg, MA  8ED8C601-5D35-4EB7-9217-012905D6E9F1

1 Ответ

1 голос
/ 05 октября 2011

GROUP BY объединит ваши дубликаты в один ряд.

Я думаю, что вместо этого вы хотите найти все people_id значения с дубликатом address_desc:

SELECT a.address_desc, a.people_id
    FROM dbo.address_view a
        INNER JOIN (SELECT address_desc
                        FROM dbo.address_view
                        GROUP BY address_desc
                        HAVING COUNT(*) > 1) t
            ON a.address_desc = t.address_desc
...