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
Pokyny k cvičení
- Doplň správné agregační funkce do poddotazu i hlavního dotazu.
- Použij
ARRAY_LENGTHk zjištění počtu položek v každé objednávce – ve sloupciorder_itemsv 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)