Filtrer des données avec des CTE
L'une des façons les plus efficaces d'utiliser une CTE consiste à filtrer vos données dans la CTE avant de les réutiliser plus loin dans la requête. Cela réduit le coût global de la requête en acheminant moins de données vers la requête finale. Cette requête nous aidera à trouver l'état des commandes contenant des articles dont le prix est supérieur à 150 $.
Cette activité fait partie du cours
Introduction à BigQuery
Instructions de l’exercice
- Créez une nouvelle CTE
orderspour les commandes avec un prix supérieur à 150 $, en désimbriquantorder_itemspour trouver la colonneprice. - Joignez les résultats de la CTE à l'ensemble de données
ecomm_order_detailspour obtenir le nombre deorder_statuset regroupez-les enCOUNTant les commandes dans chaque état.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
-- 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