SQL分割后如何整合數(shù)據(jù)

sql
小樊
81
2024-09-23 15:13:37
欄目: 云計(jì)算

在 SQL 中,如果你需要將分割后的數(shù)據(jù)整合起來,通??梢允褂?UNIONUNION ALL 操作符。這兩個(gè)操作符都用于合并兩個(gè)或多個(gè) SELECT 語(yǔ)句的結(jié)果集。

  1. UNIONUNION 操作符會(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;
  1. UNION ALL:如果你不關(guān)心結(jié)果集中的重復(fù)行,可以使用 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;

0