SELECT ENAME, HIREDATE, SAL
FROM emp
WHERE (YEAR(HIREDATE), SAL) IN (
SELECT YEAR(HIREDATE), MAX(SAL)
FROM emp
GROUP BY YEAR(HIREDATE)
);
error message
: SELECT ENAME, HIREDATE, SAL FROM emp WHERE (YEAR(HIREDATE), SAL) IN ( SELECT YEAR(HIREDATE), MAX(SAL) FROM emp GROUP BY YEAR(HIREDATE) ) LIMIT 0, 1000 Error Code: 1055. Expression #1 of HAVING clause is not in GROUP BY clause and contains nonaggregated column 'scott.emp.HIREDATE' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by 0.000 sec
-- ok
SELECT YEAR(HIREDATE), MAX(SAL)
FROM emp
GROUP BY YEAR(HIREDATE)
| yea(hiredate) | max(sal) |
|---|---|
| 1980 | 800 |
| 1981 | 5000 |
| 1987 | 3000 |
| 1982 | 1300 |