Daten mit CTEs filtern
Eine der effektivsten Nutzungen einer CTE ist es, die Daten bereits in der CTE zu filtern, bevor du sie später in der Abfrage verwendest. So sinken die Gesamtkosten der Abfrage, weil weniger Daten in die finale Abfrage gelangen. Diese Abfrage hilft uns, den Bestellstatus von Bestellungen mit Artikeln zu finden, deren Preis über 150 $ liegt.
Diese Übung ist Teil des Kurses
Einführung in BigQuery
Anleitung zur Übung
- Erstelle eine neue CTE
ordersfür Bestellungen mit einem Preis über 150 $, und entpacke dafürorder_items, um die Spaltepricezu finden. - Verknüpfe die Ergebnisse der CTE mit dem Dataset
ecomm_order_details, um die Anzahl derorder_statuszu ermitteln, und fasse sie zusammen, indem du die Bestellungen je StatusCOUNTest.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
-- 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