I need to get the row with the maximum status value for each employee_id and keep only one record for employee_id
If status is equal for the same employee id then pick one and delete the other, Thank you and appreciated
Table:
ID | Type | Status | emplyee_ID |
---|---|---|---|
1111 | A | 0 | 10 |
2222 | A | 1 | 10 |
3333 | B | 0 | 20 |
4444 | B | 0 | 20 |
Desired out but
ID | Type | Status | Emplyee ID |
---|---|---|---|
2222 | A | 1 | 10 |
3333 | B | 0 | 20 |
Advertisement
Answer
try with this …
x
SELECT emp.*
FROM employer_status emp,
(SELECT emp1.emplyee_id, MAX(emp1.id) id
FROM employer_status emp1,
(SELECT emp3.emplyee_id AS emplyee_id, MAX(emp3.status) AS STATUS
FROM employer_status emp3
GROUP BY emp3.emplyee_id
) AS emp2
WHERE emp1.emplyee_id = emp2.emplyee_id
AND emp1.status = emp2.status
GROUP BY emp1.emplyee_id
) emp4
WHERE emp.id = emp4.id;