Мне нужно сосчитать активных пользователей на веб-сайте, у которых был платеж или действие в течение этого месяца. В моем текущем запросе я получаю всех активных пользователей в каждом соответствующем месяце, не имея возможности отфильтровать количество пользователей в соответствии с моими критериями (действия> 0 или продажи> 0)
У меня есть следующий запрос с этим вывод:
SELECT
*
FROM
(
SELECT
date_format( SUMMARY_DATE, '%Y-%m' ) AS Month_,
sum( CASE TRAN_TYPE WHEN 'DEPOSIT' THEN AMOUNT_REAL ELSE 0 END ) AS Payments,
sum(
CASE
TRAN_TYPE
WHEN 'GAME_BET' THEN
- AMOUNT_REAL - AMOUNT_RELEASED_BONUS - AMOUNT_PLAYABLE_BONUS
WHEN 'GAME_WIN' THEN
- AMOUNT_REAL - AMOUNT_RELEASED_BONUS - AMOUNT_PLAYABLE_BONUS
WHEN 'REFUND' THEN
- AMOUNT_REAL - AMOUNT_RELEASED_BONUS - AMOUNT_PLAYABLE_BONUS ELSE 0
END
) AS Sales,
sum(
CASE
TRAN_TYPE
WHEN 'GAME_BET' THEN
- AMOUNT_REAL - AMOUNT_RELEASED_BONUS - AMOUNT_PLAYABLE_BONUS ELSE 0
END
) AS Actions,
sum(
CASE
TRAN_TYPE
WHEN 'GAME_BET' THEN
- AMOUNT_REAL
WHEN 'GAME_WIN' THEN
- AMOUNT_REAL
WHEN 'REFUND' THEN
- AMOUNT_REAL ELSE 0
END
) AS GGRrm
FROM
DataFeedConsCore
GROUP BY
Month_
ORDER BY
Month_ ASC
) T1
LEFT JOIN (
SELECT
count( DISTINCT USERID ) as active_users,
date_format( SUMMARY_DATE, '%Y-%m' ) AS Month_
FROM
DataFeedConsCore
GROUP BY
Month_
) T2 ON T2.Month_ = T1.Month_
вывод выглядит следующим образом:
+---------+----------+----------+-----------+-------+--------------+---------+
| Month_ | Payments | Sales | Actions | GGRrm | active_users | Month_ |
+---------+----------+----------+-----------+-------+--------------+---------+
| 2019-07 | 3255 | 2570 | 68280.95 | 1755 | 49 | 2019-07 |
+---------+----------+----------+-----------+-------+--------------+---------+
| 2019-08 | 5960 | 2818 | 153403.58 | 960 | 47 | 2019-08 |
+---------+----------+----------+-----------+-------+--------------+---------+
| 2019-09 | 2115 | 3522 | 79163 | 2115 | 60 | 2019-09 |
+---------+----------+----------+-----------+-------+--------------+---------+
| 2019-10 | 816 | 1441 | 46456.7 | 816 | 65 | 2019-10 |
+---------+----------+----------+-----------+-------+--------------+---------+
| 2019-11 | 0 | 361.23 | 1301.18 | 0 | 198 | 2019-11 |
+---------+----------+----------+-----------+-------+--------------+---------+
| 2019-12 | 150 | 498.93 | 4488.6 | 299 | 91 | 2019-12 |
+---------+----------+----------+-----------+-------+--------------+---------+
| 2020-01 | 2755 | 2875.55 | 218634 | 905 | 162 | 2020-01 |
+---------+----------+----------+-----------+-------+--------------+---------+
| 2020-02 | 19160 | 12447.63 | 240361.62 | 6803 | 319 | 2020-02 |
+---------+----------+----------+-----------+-------+--------------+---------+
| 2020-03 | 750 | 1080 | 8070 | 750 | 30 | 2020-03 |
+---------+----------+----------+-----------+-------+--------------+---------+
Как я могу убедиться, что в число COUNT active_users входят ТОЛЬКО пользователи с платежом> 0 или действиями> 0?
Вот это sqlfiddle