Filtrer des données avec des CTE
L’un des moyens les plus efficaces d’utiliser une CTE consiste à filtrer vos données dans la CTE avant de les exploiter plus loin dans la requête. Cela réduit le coût global en faisant remonter moins de données dans la requête finale. Cette requête nous aidera à trouver le statut des commandes contenant des articles dont le prix est supérieur à 150 $.
Cet exercice fait partie du cours
Introduction à BigQuery
Instructions
- Créez une nouvelle CTE
orderspour les commandes dont le prix est supérieur à 150 $, en dépliant (UNNEST)order_itemspour accéder à la colonneprice. - Joignez les résultats de la CTE au jeu de données
ecomm_order_detailspour trouver le nombre deorder_statuset regroupez-les enCOUNTant les commandes dans chaque statut.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
-- Add the correct items to finish our filtered CTE
-- Create a new CTE with the name orders
WITH ___ AS (
SELECT order_id
-- Add the correct column for the order item details
FROM ecommerce.ecomm_orders, UNNEST(___) items
-- Fill in the correct column for the item price
WHERE items.___ > 150
)
SELECT
-- Aggregate to find the total number of orders
___(order_id),
-- Add the column for the status of the order
___
FROM ecommerce.ecomm_order_details od
JOIN orders o USING (order_id)
GROUP BY order_status