Выбор только повторяющихся строк, вроде - PullRequest
0 голосов
/ 20 декабря 2011

Я действительно не уверен, как лучше объяснить это, но у нас есть база данных, в которой есть уникальный идентификатор для каждого сотрудника, описание и флаг для текущего.

SELECT COUNT("Current_Flag"),
  "Employee_Number"
FROM "Employment_History"
WHERE "Current_Flag" = 'Y'
GROUP BY "Employee_Number" ;

IЯ пытаюсь вернуть уникальный идентификатор для каждого случая, когда у них установлены два текущих флага, но я даже не знаю, с чего начать.Я попробовал отбор, который не работал, я уверен, что ответ довольно прост, но мне только что сказали, что у меня есть только 7 минут, чтобы сделать это, поэтому запаниковал и подумал, что я спрошу здесь.Извините все: /

Ответы [ 5 ]

3 голосов
/ 20 декабря 2011

Добавьте предложение HAVING к вашему текущему запросу - например, так:

select count("Current_Flag"), 
       "Employee_Number" 
from "Employment_History" 
where "Current_Flag" = 'Y' 
group by "Employee_Number"
having count("Current_Flag") >= 2

(Измените условие на =2, если вы хотите, чтобы точно 2 совпадений.)

0 голосов
/ 20 декабря 2011

(НЕПРОВЕРЕННОЕ ЗАЯВЛЕНИЕ)

SELECT Id FROM TABLE1 T1 WHERE T1.Id NOT IN(
SELECT Id FROM TABLE2 T2 WHERE (T1.Flag1 = T2.Flag1) AND (T1.Id <> T2.Id))
0 голосов
/ 20 декабря 2011
select employee_name, count(employee_name) as cnt 
group by employee_name
where cnt>1

Я думаю, это поможет.Адаптируйте его к полям в вашей БД.

0 голосов
/ 20 декабря 2011

Таблица Self Join возвращает только те строки, в которых 2 «флага» одинаковы, за исключением строк, которые совпадают по UniqueID, возвращая все экземпляры идентификатора, имеющие совпадения по флагам.

Select A.ID
from table A
INNER JOIN table B 
on A.Flag1=B.Flag1 and A.Flag2=B.Flag2
Where A.ID <> B.ID
0 голосов
/ 20 декабря 2011

Попробуйте что-то вроде этого (не проверено!).Возможно, вам придется поиграться с HAVING / COUNT, чтобы заставить его работать

SELECT unique_id, description, flag FROM table GROUP BY unique_id HAVING COUNT(unique_id) > 1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...