Optimiser avec des CTE
Les CTE vous aident aussi à optimiser les requêtes en effectuant des calculs, comme des agrégations, avant de travailler avec les données dans la requête principale.
Par exemple, vous souhaitez trouver le nombre maximal de paiements selon le nombre d’articles par commande. Cet exercice vous montre comment le faire efficacement avec une CTE.
Cet exercice fait partie du cours
Introduction à BigQuery
Instructions
- Ajoutez les fonctions d’agrégation appropriées dans la sous-requête et dans la requête principale.
- Utilisez
ARRAY_LENGTHpour obtenir le nombre d’articles dans chaque commande en utilisant deux fois la colonneorder_itemsdans la requête principale.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
WITH payments AS (
SELECT
-- Use the correct aggregate to find the highest number of payments
___(payment_sequential) AS num_payments,
order_id
FROM ecommerce.ecomm_payments
-- Group the results by order
GROUP BY ___)
SELECT
-- Add the correct function to find the length or number of order items
___(o.order_items) AS num_items,
MAX(p.num_payments) AS max_payments
FROM ecommerce.ecomm_orders o
JOIN payments p
-- Add the correct keyword to join using the same column
___ (order_id)
-- Add the correct function to find the length or number of order items
GROUP BY ___(o.order_items)