在 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;