Мне нужно получить список клиентов, которые сделали определенное количество действительных транзакций между двумя датами.
SELECT
customer.customer_id,
COUNT(
CASE WHEN transaction.transaction_date>="2010-01-01"
THEN 1
ELSE NULL
END
) AS Total
FROM customer
LEFT JOIN transaction ON customer.customer_id = transaction.customer_id
GROUP BY customer.customer_id
HAVING (Total>=min_transactions AND Total<=max_transactions)
Это ничего не возвращает.Удаляя CASE в COUNT (..), он возвращает количество транзакций на пользователя, но также содержит недопустимые транзакции и транзакции вне диапазона.
Разве цикл CASE не должен работать так, как вCOUNT?
Лучше ли считать только транзакции без объединения двух таблиц?
(Использование MySQL)