Maison  >  Questions et réponses  >  le corps du texte

Agréger les tables SQL dans les requêtes de différentes manières

J'ai trois tables en 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),

Je souhaite générer une requête SQL qui génère le revenu total de chaque produit par mois au cours des 12 derniers mois.

J'ai besoin d'une manière ou d'une autre de séparer les différents produits mais je ne sais pas comment structurer une telle requête.

Tous les conseils seraient formidables

P粉162773626P粉162773626427 Il y a quelques jours432

répondre à tous(1)je répondrai

  • P粉043432210

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

    La

    réponse donnée par est d'utiliser WITH...., ce qui n'est pas nécessaire :

    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 ;
    

    Devrait faire la même chose (non testé)

    répondre
    0
  • Annulerrépondre