Giới thiệu về 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(): Hàm trả về số thứ tự dòngOVER(): Xác định khung cửa sổPARTITION BY customer_id: Nhóm theo khách hàngORDER BY order_date: Sắp xếp trong từng partitionorder_sequence: Kết quả của phép tính windowSELECT
product_id,
product_photos_qty,
-- Hạng thứ tự cho từng dòng
RANK() OVER(
ORDER BY product_photos_qty DESC
) as rank,
-- Hạng phần trăm cho từng dòng
PERCENT_RANK() OVER(
ORDER BY product_photos_qty
) as percent
FROM ecommerce.ecomm_products
ORDER BY product_photos_qty DESC;

SELECT
product_id,
-- Trả về giá trị của dòng trước
LAG(product_photos_qty) OVER(
ORDER BY product_photos_qty
) as lag,
product_photos_qty,
-- Trả về giá trị của dòng sau
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
Tùy chọn ranh giới theo hàng:
UNBOUNDED PRECEDING: Mọi hàng trướcUNBOUNDED FOLLOWING: Mọi hàng sau[INT] ROWS PRECEDING: Số hàng cụ thể trước[INT] ROWS FOLLOWING: Số hàng cụ thể sauSELECT
product_id,
product_photos_qty,
RANK() OVER(
ORDER BY product_photos_qty DESC
) as rank
FROM ecommerce.ecomm_products
-- Lọc bằng QUALIFY
QUALIFY rank < 4
ORDER BY product_photos_qty DESC;

HAVING vì không tổng hợpGiới thiệu về BigQuery