Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- WITH RecentSummarizedTransactions AS (
- SELECT
- transaction_id,
- user_id,
- COUNT(*) as transactions_quantity,
- SUM(amount) as transactions_sum,
- AVG(amount) as transaction_average,
- COUNT(DISTINCT merchant_id) as unique_merchants
- FROM
- transactions
- WHERE
- transaction_date >= NOW() - INTERVAL 1 MONTH
- GROUP BY
- user_id
- )
- WITH AllTimeSummarizedTransactions AS (
- SELECT
- transaction_id,
- user_id,
- COUNT(*) as transactions_quantity,
- SUM (amount) as transactions_sum,
- AVG(amount) as transaction_average,
- COUNT(DISTINCT merchant_id) as unique_merchants,
- COUNT(*) / ABS(DATEDIFF(month, NOW() - INTERVAL 1 MONTH, MIN(transaction_date))) AS avg_transactions_per_month
- FROM
- transactions
- GROUP BY
- user_id
- )
- SELECT
- rst.transaction_id,
- rst.user_id,
- rst.transactions_quantity,
- rst.transactions_sum,
- rst.unique_merchants
- FROM
- RecentSummarizedTransactions rst
- JOIN
- AllTimeSummarizedTransactions ast
- ON
- ast.transaction_id=rst.transaction_id
- WHERE
- rst.transaction_average >= 3 * ast.transaction_average
- OR
- rst.transactions_quantity > 3 * ast.avg_transactions_per_month
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement