Я написал код, который должен подсчитывать мне имена, которые встречаются в моей колонке несколько раз
Вот что представляет каждый столбец:
col1 = Ids (float, null)
col2 = names (nvarchar(255), null)
col3 = region (nvarchar(255), null)
col4 = end_date (datetime, null)
В каждой таблице есть col2, поэтому я могу связать их.
Вот код, который я написал:
SELECT DISTINCT T.col1, T2.col2, T2.col3, col4
FROM tab1 AS T
INNER JOIN tab2 AS T2 ON T.col2=T2.col2
WHERE col2 IN
(SELECT [col2] FROM [tab1] GROUP BY [col2] HAVING COUNT(*) > 1)
AND T.col4 IS NULL
ORDER BY T.col2 ASC
В принципе, я почти получаю желаемый результат, но мне чего-то не хватает в моем коде. Мне нужны только значения в col2, содержащие одно и то же имя, чтобы я мог их подсчитать и изолировать. Я пытался использовать функцию COUNT в своем операторе SELECT , но не получил ожидаемого результата. Я не уверен, но я полагаю, что это может быть тип данных, который может исказить счет.
Вот пример текущих результатов, которые я получаю:
col1 col2 col3 col4
1222222222 Bus1 NY NULL
1333333333 Bus2 NY NULL
1444444444 Bus3 NY NULL
1555555555 Bus4 NY NULL
1666666666 Bus4 NY NULL
1777777777 Bus5 NY NULL
Вот то, чего я ожидаю и надеюсь достичь:
col1 col2 col3 col4
1555555555 Bus4 NY NULL
1666666666 Bus4 NY NULL
Любая помощь будет принята с благодарностью, спасибо!