To se vám stane jen proto, že MySQL porušuje logiku SQL.
Řekněme, že máme tabulku emp:
id ename dept
1 mark 10
2 John 10
3 Mary 10
4 Jane 20
a dotaz:
select dept, ename
from emp
group by dept;
dostanete co? Měli byste dostat dva řádky, protože existují dvě oddělení, ale dotaz se ptá na jméno. Za 20 je jasný ale za 10 by měl motor vrátit co?
Mělo by to vrátit chybu. Nemohu odhadnout, jaké jméno dát.Oracle střílel chybu – vaše chyba, ale MySQL dostane jméno (které není zaručeno). To je zavádějící a může způsobit chyby.
Správné dotazy by byly:
select dept, max(ename) --the latest, alaphabeticaly
from emp
group by dept;
a
--all enames and groups
select dept, ename
from emp
group by dept, ename;
Po opravě této části budete muset vyřešit problém
COUNT(*) over() AS rowcount
část. V oracle, AFAIK, nemůžete kombinovat analytické funkce se skupinami podle dotazů.