BigQuery परिचय
Matthew Forrest
Field CTO


SELECT customer_id, order_date, order_total, ROW_NUMBER() OVER(PARTITION BY customer_idORDER BY order_date) AS order_sequence FROM orders;
ROW_NUMBER(): वह window function जो पंक्ति संख्या देता हैOVER(): window frame परिभाषित करता हैPARTITION BY customer_id: डेटा को ग्राहक के आधार पर समूहित करता हैORDER BY order_date: हर partition के भीतर क्रम तय करता हैorder_sequence: window function का परिणामSELECT
product_id,
product_photos_qty,
-- हर पंक्ति के लिए क्रमिक रैंक
RANK() OVER(
ORDER BY product_photos_qty DESC
) as rank,
-- हर पंक्ति के लिए पर्सेंटाइल रैंक
PERCENT_RANK() OVER(
ORDER BY product_photos_qty
) as percent
FROM ecommerce.ecomm_products
ORDER BY product_photos_qty DESC;

SELECT
product_id,
-- पिछली पंक्ति का मान देता है
LAG(product_photos_qty) OVER(
ORDER BY product_photos_qty
) as lag,
product_photos_qty,
-- अगली पंक्ति का मान देता है
LEAD(product_photos_qty) OVER(
ORDER BY product_photos_qty
) as lead
FROM ecommerce.ecomm_products
ORDER BY product_photos_qty DESC;

SELECT
order_id,
order_timestamp,
SUM(cost) OVER(
ORDER BY order_timestamp
ROWS BETWEEN 2 PRECEDING
AND CURRENT ROW) as rolling_avg
FROM sales_data
ORDER BY order_timestamp
Row-आधारित bounding विकल्प:
UNBOUNDED PRECEDING: इससे पहले की सभी पंक्तियाँUNBOUNDED FOLLOWING: इसके बाद की सभी पंक्तियाँ[INT] ROWS PRECEDING: पहले की निर्दिष्ट पंक्तियाँ[INT] ROWS FOLLOWING: बाद की निर्दिष्ट पंक्तियाँSELECT
product_id,
product_photos_qty,
RANK() OVER(
ORDER BY product_photos_qty DESC
) as rank
FROM ecommerce.ecomm_products
-- QUALIFY का उपयोग कर फ़िल्टर करें
QUALIFY rank < 4
ORDER BY product_photos_qty DESC;

HAVING उपयोग नहीं कर सकते क्योंकि हम aggregate नहीं कर रहे हैंBigQuery परिचय