Опитах се да се забъркам с някои варианти на заявка.
Изглежда, че sqlite има грешки при използването на предишни декларирани полета във вложен HAVING изрази.
Във вашия пример avg1
под второ имане винаги е равно на 5.0
Виж:
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);
Този не връща нищо, но изпълнението на следната заявка връща и двата записа:
...
having not exists (
SELECT 1 AS col1 GROUP BY col1 HAVING avg1 <> 5.0);
Не мога да намеря подобен бъг в списък с билети на sqlite .