Ini terjadi pada Anda hanya karena MySQL merusak logika SQL.
Katakanlah kita memiliki tabel emp:
id ename dept
1 mark 10
2 John 10
3 Mary 10
4 Jane 20
dan kueri:
select dept, ename
from emp
group by dept;
Anda akan mendapatkan apa? Anda harus mendapatkan dua baris, karena ada dua departemen, tetapi kueri meminta ename. Untuk 20 jelas tapi untuk 10 mesin harus kembali apa?
Itu harus mengembalikan kesalahan. Tidak dapat menebak apa yang harus diberikan. Oracle menembak kesalahan - kesalahan Anda, tetapi MySQL mendapatkan email (tidak dijamin yang mana). Itu menyesatkan dan mungkin melakukan bug.
Kueri yang benar adalah:
select dept, max(ename) --the latest, alaphabeticaly
from emp
group by dept;
dan
--all enames and groups
select dept, ename
from emp
group by dept, ename;
Setelah Anda memperbaiki bagian ini, Anda harus menyelesaikan
COUNT(*) over() AS rowcount
bagian. Di oracle, AFAIK, Anda tidak dapat menggabungkan fungsi analitik dengan grup berdasarkan kueri.