Saya mencoba mengacaukan beberapa varian kueri.
Tampaknya, seperti sqlite memiliki kesalahan dalam menggunakan bidang yang dideklarasikan sebelumnya dalam HAVING bersarang ekspresi.
Dalam contoh Anda avg1
di bawah kedua memiliki selalu sama dengan 5.0
Lihat:
select T1.id, avg(T1.score) avg1
from foo T1
group by T1.id
having not exists (
SELECT 1 AS col1 GROUP BY col1 HAVING avg1 = 5.0);
Yang ini tidak menghasilkan apa-apa, tetapi eksekusi kueri berikut mengembalikan kedua catatan:
...
having not exists (
SELECT 1 AS col1 GROUP BY col1 HAVING avg1 <> 5.0);
Saya tidak dapat menemukan bug serupa di daftar tiket sqlite .