Optimering med CTEs
CTEs hjälper dig också att optimera frågor genom att hantera beräkningar som aggregeringar innan du arbetar med data i huvudfrågan.
Till exempel kanske du vill hitta det högsta antalet betalningar per orderradsantal. Den här övningen visar hur du gör det effektivt med en CTE.
Den här övningen är en del av kursen
Introduktion till BigQuery
Övningsinstruktioner
- Lägg till rätt aggregatfunktioner i underfrågan och huvudfrågan.
- Använd
ARRAY_LENGTHför att beräkna antalet artiklar i varje order med hjälp av kolumnenorder_items– detta görs två gånger i huvudfrågan.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
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)