'Want SQL statement to return all columns
Write a SELECT
statement that returns the LastName, FirstName, and AnnualSalary columns of each instructor that has a unique annual salary. In other words, don’t include instructors that have the same annual salary as another instructor.
And the code that I tried is
SELECT DISTINCT
LastName,
FirstName,
AnnualSalary
FROM
Instructors i
WHERE
i.AnnualSalary NOT IN (SELECT AnnualSalary
FROM Instructors i1
WHERE i.AnnualSalary <> i1.AnnualSalary)
Solution 1:[1]
SELECT LastName, FirstName, AnnualSalary
FROM Instructors
WHERE AnnualSalary NOT IN
(SELECT AnnualSalary
FROM Instructors
GROUP BY AnnualSalary
HAVING COUNT(AnnualSalary) > 1)
ORDER BY LastName, FirstName;
Solution 2:[2]
You were close, try with this change
SELECT
LastName,
FirstName,
AnnualSalary
FROM
Instructors i
WHERE
i.AnnualSalary NOT IN (SELECT AnnualSalary
FROM Instructors i1
group by AnnualSalary
having count(*) > 1)
i removed the distinct keyword as it is not required
Solution 3:[3]
Here is your answer,
SELECT i1.*
FROM Instructors i1
WHERE (SELECT count(1)
FROM Instructors i2
WHERE i1.AnnualSalary = i2.AnnualSalary and not (i1.FirstName = i2.FirstName and i1.LastName = i2.LastName)
)<>1
Hope you will got your answer.
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|---|
Solution 1 | Blastfurnace |
Solution 2 | RegBes |
Solution 3 |