Подтвердить что ты не робот

Как выбрать все строки, которые имеют одинаковое значение в некотором столбце

Я новичок в sql, поэтому будьте добрыми.

Предположим, что я должен отобразить все employee_ids, которые имеют одинаковый номер телефона (оба столбца находятся в одной таблице)

Как я могу продолжить эту внутреннюю попытку проблемы или что-то в этом роде.

4b9b3361

Ответ 1

Как насчет

SELECT *
FROM Employees
WHERE PhoneNumber IN (
    SELECT PhoneNumber
    FROM Employees
    GROUP BY PhoneNumber
    HAVING COUNT(Employee_ID) > 1
    )

SQL Fiddle DEMO

Ответ 2

SELECT * FROM employees e1, employees e2 
WHERE e1.phoneNumber = e2.phoneNumber 
AND e1.id != e2.id;

Обновить: для лучшей производительности и быстрого запроса полезно добавить e1 до *

SELECT e1.* FROM employees e1, employees e2 
WHERE e1.phoneNumber = e2.phoneNumber 
AND e1.id != e2.id;

Ответ 3

Вы можете сделать это без JOIN:

SELECT *
FROM (SELECT *,COUNT(*) OVER(PARTITION BY phone_number) as Phone_CT
      FROM YourTable
      )sub
WHERE Phone_CT > 1
ORDER BY phone_number, employee_ids

Демо: SQL Fiddle