在 SQL 中,如果你需要將分割后的數(shù)據(jù)整合起來,通??梢允褂?UNION
或 UNION ALL
操作符。這兩個(gè)操作符都用于合并兩個(gè)或多個(gè) SELECT
語(yǔ)句的結(jié)果集。
UNION
操作符會(huì)自動(dòng)去除重復(fù)的行,只返回唯一的記錄。如果需要保留重復(fù)行,請(qǐng)使用 UNION ALL
。假設(shè)你有一個(gè)表格 sales_data
,包含以下字段:id
, product
, quantity
, date
。如果你想要獲取每個(gè)產(chǎn)品的總銷售數(shù)量,你可以使用以下查詢:
SELECT product, SUM(quantity) as total_quantity
FROM sales_data
GROUP BY product;
現(xiàn)在,假設(shè)你想要獲取每個(gè)產(chǎn)品在前三個(gè)月和前六個(gè)月的銷售數(shù)量。你可以使用以下查詢:
-- 前三個(gè)月的銷售數(shù)量
SELECT product, SUM(quantity) as total_quantity
FROM sales_data
WHERE date >= DATEADD(MONTH, -3, GETDATE())
GROUP BY product;
-- 前六個(gè)月的銷售數(shù)量
SELECT product, SUM(quantity) as total_quantity
FROM sales_data
WHERE date >= DATEADD(MONTH, -6, GETDATE())
GROUP BY product;
接下來,你可以使用 UNION
將這兩個(gè)查詢的結(jié)果整合在一起:
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
。這將直接將所有的結(jié)果合并在一起,包括重復(fù)的行。例如:
-- 前三個(gè)月的銷售數(shù)量
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;