2015-05-29 2 views
0

Учитывая список имен, счета и позиции Я пытаемся:Выбор ТОП 1 Столбцы, где дубликат существует и выбор всех, где дубликат не существует

  1. Выберите 1-е места, где есть более 1 записи с то же имя и учетная запись
  2. Если есть только 1 запись с именем и учетной записью, затем выберите детали.

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

SELECT * 
FROM CTE cte1 
JOIN 
(
    SELECT Name, OppName FROM CTE GROUP BY Name, OppName HAVING COUNT(Name)>1 
) as cte2 
on cte2.Name = cte1.Name and cte2.OppName = cte1.OppName 
ORDER BY cte1.OppName, cte1.Name 

Я не отправил остальную часть запроса КТР, поскольку это способ долго. Однако это только дает мне результаты, в которых имя и учетные записи совпадают, а позиции - разные.

I.E. Если бы Ора работала в Christie's как аналитик по продажам и разработчик, она бы выбрала только запись, где Ора работала в Christie's в качестве разработчика.

Как мне соответствующим образом изменить этот запрос?

ответ

0

Вы ищете что-то в этом роде?

SELECT * 
FROM CTE AS cte1 
JOIN 
(
    SELECT Name, OppName,COUNT(Name) PARTITION BY (Name,OppName) cnt 
    FROM CTE 
) AS cte2 
ON cte2.Name = cte1.Name and cte2.OppName = cte1.OppName 
WHERE cnt > 1 
ORDER BY cte1.OppName, cte1.Name 
+0

Хм. Это вернуло 2 записи: Oeral, Chritie, Developer – ae15

Смежные вопросы