Подсчитать количество новых записей на данную дату, только если они новые - PullRequest
1 голос
/ 17 февраля 2012

Я пытаюсь подсчитать количество новых записей для данной даты, только если дата записи является минимальной (датой) для владельца записи. Вот запрос, который я пытаюсь выполнить:

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. Чего мне не хватает?

Ответы [ 2 ]

2 голосов
/ 17 февраля 2012

вы должны использовать HAVING, чтобы отфильтровать условие для группы записей или статистической функции, поэтому вместо WHERE min(date(date_posted)) = '2012-02-07' попытайтесь HAVING min(date(date_posted)) = '2012-02-07'

0 голосов
/ 17 февраля 2012

Попробуйте ниже:

 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'; 
...