Detta händer dig bara för att MySQL bryter logiken i SQL.
Låt oss säga att vi har table emp:
id ename dept
1 mark 10
2 John 10
3 Mary 10
4 Jane 20
och frågan:
select dept, ename
from emp
group by dept;
du får vad? Du bör få två rader, eftersom det finns två avdelningar, men frågan frågar efter ename. För 20 är klart men för 10 ska motorn returnera vad?
Det borde returnera ett fel. Kan inte gissa vilket ename man ska ge. Oracle skjuter ett fel - ditt fel, men MySQL får ett ename (inte garanterat vilket). Det är missvisande och kan leda till buggar.
Korrekta frågor skulle vara:
select dept, max(ename) --the latest, alaphabeticaly
from emp
group by dept;
och
--all enames and groups
select dept, ename
from emp
group by dept, ename;
När du har rättat till den här delen måste du lösa problemet
COUNT(*) over() AS rowcount
del. I Oracle, AFAIK, kan du inte blanda analytiska funktioner med grupp efter frågor.