SQL Server SQL查找2022年客户月频率的分布

chy5wohz  于 2023-01-25  发布在  其他
关注(0)|答案(2)|浏览(169)

我有一个交易表,其中包含transaction_id和customer_id,交易日期为transaction_date。我想找到2022年客户每月频率的分布。由于我是数据科学和分析领域的新手,因此如有任何帮助将不胜感激。

zbwhf8kr

zbwhf8kr1#

你在找这样的东西吗:

SELECT MONTH([date])
      ,COUNT(customer_id) -- customers per month
      ,COUNT(DISTINCT customer_id) -- unique customers per month
FROM [transaction]
WHERE YEAR([date]) = 2022
GROUP BY MONTH([date])

以上将为您提供每月的客户总数。如果您需要深入查找每个客户每月的交易:

SELECT customer_id
      ,MONTH([date])
      ,COUNT(transaction_id)
FROM [transaction]
WHERE YEAR([date]) = 2022
GROUP BY customer_id
qjp7pelc

qjp7pelc2#

要查找2022年客户每月频率的分布,您可以使用以下步骤:
1.使用DATE_TRUNC或DATE_EXTRACT函数从transaction_date列提取年和月。
1.使用WHERE子句筛选表以仅包括在2022年发生的事务。
1.按customer_id和提取的月份对其余事务进行分组。
1.使用COUNT()函数计算每个客户每月的事务数。
1.使用GROUP BY子句按提取的月份对结果进行分组。
1.再次使用COUNT()函数计算每月有交易的客户数。
样本代码:

WITH transactions_2022 AS (
            SELECT customer_id,
                   DATE_TRUNC('month', transaction_date) AS month,
                   COUNT(transaction_id) as frequency
            FROM transactions
            WHERE DATE_TRUNC('year', transaction_date) = '2022'
            GROUP BY 1,2
        )
        SELECT month,
               COUNT(DISTINCT customer_id) as customer_count,
               SUM(frequency) as transaction_count
        FROM transactions_2022
        GROUP BY 1

相关问题