Začněte nyníZačněte zdarma

Optimalizace dotazů pomocí CTE

CTE ti také pomáhají optimalizovat dotazy tím, že výpočty jako agregace provedou ještě před zpracováním dat v hlavním dotazu.

Řekněme, že chceš zjistit nejvyšší počet plateb podle počtu položek v objednávce. Toto cvičení ti ukáže, jak to efektivně zvládnout pomocí CTE.

Toto cvičení je součástí kurzu

Introduction to BigQuery

Zobrazit kurz

Pokyny k cvičení

  • Doplň správné agregační funkce do poddotazu i hlavního dotazu.
  • Použij ARRAY_LENGTH k zjištění počtu položek v každé objednávce – ve sloupci order_items v hlavním dotazu to použij dvakrát.

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

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)
Upravit a spustit kód