Ho provato a pasticciare con alcune varianti di query.
Sembra che sqlite abbia errori nell'utilizzo dei campi dichiarati precedenti in un HAVING nidificato espressioni.
Nel tuo esempio avg1
under second having è sempre uguale a 5.0
Guarda:
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);
Questo non restituisce nulla, ma l'esecuzione della seguente query restituisce entrambi i record:
...
having not exists (
SELECT 1 AS col1 GROUP BY col1 HAVING avg1 <> 5.0);
Non riesco a trovare alcun bug simile in elenco dei biglietti sqlite .