Filtrování dat pomocí CTE
Jedním z nejefektivnějších způsobů využití CTE je filtrování dat přímo v CTE, ještě před tím, než je použiješ ve zbytku dotazu. Díky tomu pracuje finální dotaz s menším objemem dat, což snižuje celkové náklady na jeho zpracování. Tento dotaz nám pomůže zjistit stav objednávek, které obsahují položky s cenou vyšší než 150 $.
Toto cvičení je součástí kurzu
Introduction to BigQuery
Pokyny k cvičení
- Vytvoř nové CTE
orderspro objednávky s cenou vyšší než 150 $, přičemž rozbalorder_items, abys získal/a sloupecprice. - Spoj výsledky CTE s datasetem
ecomm_order_details, zjisti počet jednotlivých hodnotorder_statusa agreguj je pomocíCOUNTpodle každého stavu.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
-- 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