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 |