📜  数据透视表 sql server - SQL (1)

📅  最后修改于: 2023-12-03 15:26:10.101000             🧑  作者: Mango

数据透视表 SQL Server - SQL

在 SQL Server 中,数据透视表用于汇总和分析数据。数据透视表提供了一种快速和简便的方法来处理大量数据,并能够轻松地以多种方式查看和分析它们。

创建数据透视表

要创建数据透视表,可以使用 PIVOT 操作符。PIVOT 操作符用于将 SQL 查询的行转换为列。以下是一个示例:

SELECT *
FROM (
    SELECT fruit, season, amount
    FROM Sales
) AS SourceTable
PIVOT (
    SUM(amount)
    FOR season IN ([Spring], [Summer], [Fall], [Winter])
) AS PivotTable

在此示例中,我们选择 Sales 表中的水果、季节和数量列。然后,我们使用 PIVOT 操作符将季节行转换为列,并使用 SUM 函数计算每个季节中的水果销售总量。最后,我们将结果放入名为 PivotTable 的表中,其中每个季节都成为一列。

添加筛选器和合计行和列

可以添加筛选器、行合计和列合计到数据透视表中。以下是一个示例:

SELECT *
FROM (
    SELECT fruit, season, amount
    FROM Sales
) AS SourceTable
PIVOT (
    SUM(amount)
    FOR season IN ([Spring], [Summer], [Fall], [Winter])
) AS PivotTable
WHERE fruit = 'Apple' OR fruit = 'Banana'
WITH ROLLUP

在此示例中,我们添加了筛选器以仅返回苹果和香蕉的销售数据。此外,我们使用 WITH ROLLUP 添加了一行和一列合计,以显示在所有行或所有列中显示的总计。

添加多个聚合函数

可以添加多个聚合函数到数据透视表中,以便同时计算不同的值。以下是一个示例:

SELECT *
FROM (
    SELECT fruit, season, amount
    FROM Sales
) AS SourceTable
PIVOT (
    SUM(amount) AS TotalSales, AVG(amount) AS AverageSales
    FOR season IN ([Spring], [Summer], [Fall], [Winter])
) AS PivotTable

在此示例中,我们使用 SUM 函数计算每个季节的总销售额,并使用 AVG 函数计算每个季节的平均销售额。我们使用 AS 关键字为每个聚合函数提供了一个别名,以便更好地识别它们。

结论

SQL Server 的数据透视表提供了一种强大的方式来汇总和分析大量数据。使用 PIVOT 操作符可以将行转换为列,并使用多种聚合函数计算不同的值。同时添加筛选器、行合计和列合计还能够让数据透视表更加灵活和实用。