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 …
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;