在 SQL 中,如果你需要將分割后的數據整合起來,通常可以使用 UNION
或 UNION ALL
操作符。這兩個操作符都用于合并兩個或多個 SELECT
語句的結果集。
UNION
操作符會自動去除重復的行,只返回唯一的記錄。如果需要保留重復行,請使用 UNION ALL
。假設你有一個表格 sales_data
,包含以下字段:id
, product
, quantity
, date
。如果你想要獲取每個產品的總銷售數量,你可以使用以下查詢:
SELECT product, SUM(quantity) as total_quantity
FROM sales_data
GROUP BY product;
現在,假設你想要獲取每個產品在前三個月和前六個月的銷售數量。你可以使用以下查詢:
-- 前三個月的銷售數量
SELECT product, SUM(quantity) as total_quantity
FROM sales_data
WHERE date >= DATEADD(MONTH, -3, GETDATE())
GROUP BY product;
-- 前六個月的銷售數量
SELECT product, SUM(quantity) as total_quantity
FROM sales_data
WHERE date >= DATEADD(MONTH, -6, GETDATE())
GROUP BY product;
接下來,你可以使用 UNION
將這兩個查詢的結果整合在一起:
SELECT product, SUM(quantity) as total_quantity
FROM sales_data
WHERE date >= DATEADD(MONTH, -3, GETDATE())
GROUP BY product
UNION
SELECT product, SUM(quantity) as total_quantity
FROM sales_data
WHERE date >= DATEADD(MONTH, -6, GETDATE())
GROUP BY product;
UNION ALL
。這將直接將所有的結果合并在一起,包括重復的行。例如:
-- 前三個月的銷售數量
SELECT product, SUM(quantity) as total_quantity
FROM sales_data
WHERE date >= DATEADD(MONTH, -3, GETDATE())
GROUP BY product
UNION ALL
SELECT product, SUM(quantity) as total_quantity
FROM sales_data
WHERE date >= DATEADD(MONTH, -6, GETDATE())
GROUP BY product;