Ik heb geprobeerd te knoeien met een aantal varianten van zoekopdrachten.
Het lijkt erop dat sqlite fouten heeft bij het gebruik van eerder gedeclareerde velden in een geneste HAVING uitdrukkingen.
In uw voorbeeld avg1
onder de tweede hebben is altijd gelijk aan 5,0
Kijk:
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);
Deze retourneert niets, maar de uitvoering van de volgende query retourneert beide records:
...
having not exists (
SELECT 1 AS col1 GROUP BY col1 HAVING avg1 <> 5.0);
Ik kan geen vergelijkbare bug vinden op sqlite ticketslijst .