SQL 以下面的格式打印结果

SQL to print the result in below format

我有一个使用 AWS Athena 的应用程序。我有 2 tables 即。事件和 event_transactions。事件 table 包含事件信息,event_transactions 包含单个事件,并且有一列 event_date 表示事件发生的日期。

我需要计算每个事件在过去 1 个月间隔、过去 1 周间隔和从今天开始的最后 1 天的事件计数。

格式:

event_name, daily_count, weekly_count, monthly_count

我需要在同一行中显示每个事件的所有 3 个计数。

要计算 weekly_count 我使用以下查询:

select event_name, count(*) as weekly_count from event_transactions where event_name in ('ABC','XYZ')
and (event_date >= CAST(current_date - interval '7' day as varchar)) AND (event_date <= CAST(current_date - interval '1' day as varchar)) 
group by 1

输出:

event_name.    weekly_count
ABC.           23
XYZ.           14

请帮忙写一个SQL,它将在一行中打印所有 3 个计数。

使用count_if。沿着这条线:

select event_name, 
    count_if(event_date >= CAST(current_date - interval '7' day as varchar) AND event_date <= CAST(current_date - interval '1' day as varchar)) as weekly_count ,
    ... -- rest of the counts
from event_transactions 
where event_name in ('ABC','XYZ')
group by 1

此外,我建议查看 between range operator and using date_parse on event_date 是否具有一致格式的数据。