我只是在记录日期是记录所有者的最小值(日期)时,尝试计算给定日期的新记录数。这是我想要运行的查询:
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
错误。我错过了什么?
答案 0 :(得分:2)
您必须使用HAVING
来过滤一组记录或聚合函数的条件,因此不要WHERE min(date(date_posted)) = '2012-02-07'
尝试HAVING min(date(date_posted)) = '2012-02-07'
答案 1 :(得分: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';