クエリのいくつかのバリエーションをいじってみました。
ネストされたHAVINGで以前に宣言されたフィールドを使用する際にsqliteにエラーがあるようです 式。
あなたの例では、avg1
2番目の下で持つことは常に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チケットリスト で同様のバグを見つけることができません。 。