2015-05-02 3 views
0

Я пишу SQL-запрос для своего CRM.SQL Дублирующие строки

Моей таблица выглядит следующим образом:

EML SubKey 
---------- 
A A 
A 1 
B B 
C 2 

Я хочу, чтобы выбрать уникальные электронные письма и дубликаты писем с нечисловыми подразделами.

Результат должен выглядеть

A A 
B B 
C 2 

Пожалуйста, помогите мне.

SELECT DISTINCT 
EML 
FROM _ListSubscribers 

SELECT SubscriberKey 
FROM _ListSubscribers 
WHERE ISNUMERIC(SubscriberKey) = 0 

ответ

1

Обновленный запрос должен дать вам искомый результат:

SELECT 
    EML 
    , SubscriberKey 
FROM _ListSubscribers 
WHERE EML IN (
    SELECT EML 
    FROM _ListSubscribers 
    GROUP BY EML 
    HAVING COUNT(*) = 1 
) 

UNION 

SELECT 
    EML 
    , SubscriberKey 
FROM _ListSubscribers 
WHERE EML IN (
    SELECT EML 
    FROM _ListSubscribers 
    GROUP BY EML 
    HAVING COUNT(*) > 1 
) AND ISNUMERIC(SubscriberKey) = 0 
+0

Я получаю синтаксическую ошибку :( – user3276533

+0

Спасибо! Я не знал об UNION. Я добавил * в count(). – user3276533

0

Вы говорите, что вы хотите «с нечисловых метрополитенов» и есть C 2 в результате, как вы хотите выглядеть?

+0

Да, когда нет никакого дубликата. – user3276533

+0

Итак, если есть дубликаты писем, выберите SELECT с помощью нечислового абонентского ключа. – user3276533