-- 使用 Common Table Expression (CTE) 定义一个临时表 tom_t
with tom_t as (
    -- 从 trade 表中选择 t_time 和 t_amount 列
    select 
        t.t_time,
        t.t_amount
    from 
        trade t
    -- 左连接 customer 表,连接条件是 trade 表的 t_cus 列与 customer 表的 c_id 列相等
    left join 
        customer c on t.t_cus = c.c_id
    -- 过滤条件:customer 表的 c_name 列等于 'Tom'
    -- 并且 trade 表的 t_type 列等于 1
    -- 并且 trade 表的 t_time 列大于等于 '2023-01-01'
    -- 并且 trade 表的 t_time 列小于 '2024-01-01'
    where 
        c.c_name = 'Tom'
        and t.t_type = 1
        and t.t_time >= '2023-01-01'
        and t.t_time < '2024-01-01'
)

-- 从 tom_t 表中选择数据
select 
    -- 将 t_time 列格式化为 'YYYY-MM' 格式,并命名为 time
    date_format(t_time, '%Y-%m') as time,
    -- 对 t_amount 列求和,并命名为 total
    sum(t_amount) as total
from 
    tom_t
-- 按 time 列进行分组
group by 
    time
-- 按 time 列进行排序
order by 
    time;