私はSQLが初めてなので、親切にしてください。
同じ電話番号を持つすべてのemployee_idを表示する必要があると仮定します(両方の列が同じテーブルにあります)
この問題の内部結合または何かに進むにはどうすればよいですか?.
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;
どう?
SELECT *
FROM Employees
WHERE PhoneNumber IN (
SELECT PhoneNumber
FROM Employees
GROUP BY PhoneNumber
HAVING COUNT(Employee_ID) > 1
)
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