搜索

首页  >  问答  >  正文

通过不同的方式聚合查询中的 sql 表

我在sql中有三个表

order_table (order_id, product_id, amount)
products_table (product_id, name, price_usd),
all_orders (order_id, customer_id, order_date, total_amount),

我想生成一个 SQL 查询,它按月输出过去 12 个月每个产品的总收入。

我不知何故需要分离出不同的产品,但我不确定如何构建这样的查询。

任何指针都会很棒

P粉162773626P粉162773626494 天前473

全部回复(1)我来回复

  • P粉043432210

    P粉0434322102023-09-10 12:54:46

    给出的答案是使用WITH....,这是不需要的:

    select 
       DATE_FORMAT(all_orders.order_date, '%Y-%m') as order_date, 
       name as product_name, 
       sum(total_amount) as total_quantity, 
       sum(price_usd * total_amount) as total_revenue 
    from all_orders
    LEFT JOIN order_table USING (order_id)
    LEFT JOIN products_table USING (product_id)
    where all_orders.order_date >= date_sub(current_date(), interval 12 month)
    group by 1,2 ;
    

    应该做同样的事情(未经测试)

    回复
    0
  • 取消回复