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エラーが発生します。私は何が欠けていますか?

4

2 に答える 2

2

レコードのグループまたは集計関数の条件をフィルタリングするために使用する必要があるため、 tryHAVINGの代わりにWHERE min(date(date_posted)) = '2012-02-07'HAVING min(date(date_posted)) = '2012-02-07'

于 2012-02-17T05:31:50.873 に答える
0

以下を試してください:

 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'; 
于 2012-02-17T05:34:25.093 に答える