1

sqliteでこのクエリを実行できません:

Cursor c = mDb.rawQuery(
                "SELECT count(sim1.movie_id) FROM stars_in_movies sim1 WHERE "
                        + "EXISTS ( SELECT 1 FROM stars_in_movies sim2 WHERE "
                        + "sim1.movie_id = sim2.movie_id HAVING COUNT(*) = 4) "
                        , null);

このクエリは、4人の俳優がいるstars_in_moviesテーブル内のすべての映画を取得します。

この実行時エラーが発生します:SQLiteException : A group by clause is required before having

このクエリは私のMysqlnターミナルで実行されますが、sqliteが気に入らないようです。上記のクエリを変更してSQLiteで同じ結果を得るにはどうすればよいですか?

4

1 に答える 1

0

movie_idしたがって、テーブルに4つのエントリがあるsの数を数えたいと思います。SQLクエリは次のようになります。

SELECT COUNT(*) 
FROM 
(
   SELECT 1
   FROM stars_in_movies
   GROUP BY movie_id
   HAVING COUNT(*) = 4
) s_i_m
于 2012-06-07T02:47:52.957 に答える