2012-02-17 5 views
1

レコードの日付がレコード所有者の最小(日付)の場合のみ、指定した日付の新しいレコードの数をカウントしようとしています。ここで私が実行しようとしていますクエリは次のとおりです。これは、このユーザー/商人が検出された最初の日である場合指定された日付の新しいレコードの数が新しい場合にのみ、カウントします。

SELECT COUNT(*) 
    FROM user_total_spends 
WHERE user_id IN (SELECT user_id 
        FROM user_total_spends 
        WHERE MIN(DATE(date_posted)) = '2012-02-07') 
    AND merchant_location_id = '4f39b201-4a50-40ff-9cdf-cec51506eaf2' 
    AND date_posted = '2012-02-07'; 

基本的に私が言うことをしようとしています、この販売のための新しいユーザーとしてカウント。

これを実行すると、Invalid use of group functionエラーが発生します。私は何が欠けていますか?

+1

を))= '2012-02-07' try 'HAVING min(date(date_posted))=' 2012-02-07 '' – RRUZ

+0

解決策を投稿して答えにすることができます。それは完璧に働いた! –

答えて

2

あなたがレコードまたは集約関数のグループのための条件をフィルタリングするHAVINGを使用し、その代わりに、WHERE min(date(date_posted)) = '2012-02-07'の下に試してみてくださいHAVING min(date(date_posted)) = '2012-02-07'

0

を試みなければならない。その代わり分(日付は(date_posted WHERE `の

SELECT count(*) FROM user_total_spends 
    WHERE user_id IN (SELECT user_id FROM user_total_spends GROUP BY user_id HAVING min(date(date_posted)) = '2012-02-07') 
    AND merchant_location_id = '4f39b201-4a50-40ff-9cdf-cec51506eaf2' AND 
    date_posted = '2012-02-07'; 
+0

'GROUP BY user_id'がありません –

+0

@J Cooper:ありがとう...今修正されました –

関連する問題