Aan de slagGa gratis aan de slag

Optimaliseren met CTE's

CTE's helpen je ook om query's te optimaliseren door eerst berekeningen zoals aggregaties uit te voeren voordat je met de gegevens in de hoofdquery werkt.

Stel, je wilt het hoogste aantal betalingen vinden per aantal items in een order. In deze oefening zie je hoe je dat efficiënt doet met een CTE.

Deze oefening maakt deel uit van de cursus

Introductie tot BigQuery

Cursus bekijken

Oefeninstructies

  • Voeg de juiste aggregatiefuncties toe in de subquery en in de hoofdquery.
  • Gebruik ARRAY_LENGTH om het aantal items in elke order te bepalen door de kolom order_items twee keer te gebruiken in de hoofdquery.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

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)
Code bewerken en uitvoeren