В этом запросе я пытаюсь выбрать суммы платежей, которые сделали пользователи:
SELECT *
from (select IFnull(t.diapason,'total') as diapason,
t.total_amount as total_amount
FROM
(SELECT p.user_id, p.amount as total_amount, CASE
when amount<=100 then '0-100'
when amount>100 then '100...' END AS diapason
FROM (SELECT distinct payments.user_id, SUM(amount) AS amount
FROM payments inner JOIN (SELECT DISTINCT user_id FROM payments where
payment_time between '2000-01-01' and '2001-01-01') a ON
payments.user_id = a.user_id
GROUP BY payments.user_id) p) t
GROUP BY diapason WITH ROLLUP) as t1
ORDER BY total_amount desc;
Но полученный результат неверен.Что я должен изменить, чтобы узнать сумму выплат за период 2000-01-01 - 2001-01-01.Результат должен быть разделен по группам из-за платежей, которые когда-либо делал пользователь.
Это таблицы активности и платежи.
activity
user_id login_time
1 2000-01-01
2 2000-03-01
....
payments
user_id payment_time amount
1 2000-05-04 10
1 2000-03-01 20
2 2000-04-05 5
...
Как правило, группы формируются из общей суммы, которую каждый пользователь когда-либо заплатил.Например, если он заплатил 50 $ - он в группе "0-100".Если он заплатил 500 - он в группе "100 ..." Но теперь мне нужно знать сумму платежей, которые пользователи сделали в каждой группе.
Спасибо, если вы попытаетесь помочь!