Mysql
 sql >> Database >  >> RDS >> Mysql

Perché i risultati di SELECT differiscono tra mysql e sqlite?

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 .