Próbowałem zadzierać z niektórymi wariantami zapytania.
Wygląda na to, że sqlite ma błędy w używaniu poprzednio zadeklarowanych pól w zagnieżdżonym HAVING wyrażenia.
W twoim przykładzie avg1
poniżej drugiego posiadania jest zawsze równe 5.0
Spójrz:
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);
Ten nie zwraca nic, ale wykonanie następującego zapytania zwraca oba rekordy:
...
having not exists (
SELECT 1 AS col1 GROUP BY col1 HAVING avg1 <> 5.0);
Nie mogę znaleźć żadnego podobnego błędu na lista biletów sqlite .