2012-06-06 4 views
1

나는 sqlite가이 쿼리를 실행할 수 없습니다 :이 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); 

이 쿼리 그들에 네 배우가있는 stars_in_movies 테이블의 모든 영화를 가져옵니다.

나는이 런타임 오류 얻을 : SQLiteException : A group by clause is required before having

이 쿼리 내 Mysqln 터미널에서 실행을하지만 sqlite가 그것을 좋아하지 않는 것 같습니다. SQLite에서 동일한 결과를 얻으려면 위의 쿼리를 어떻게 변경합니까?

답변

0

따라서 테이블에 네 개의 항목이있는 movie_id의 수를 계산하고 싶습니다. SQL 쿼리는 다음과 같아야합니다 :

SELECT COUNT(*) 
FROM 
(
    SELECT 1 
    FROM stars_in_movies 
    GROUP BY movie_id 
    HAVING COUNT(*) = 4 
) s_i_m 
+0

모든 SQL 쿼리가 반드시 SQLite와 작동하지는 않습니다. – GAMA

관련 문제