PIVOT 可以同时使用两个函数吗

Feng 80 信誉分
2024-03-22T02:57:47.0333333+00:00

我可以在PIVOT中同时使用两个聚合函数吗?比如说SUM和AVG。

我查看了官方文档中的例子,好像只可以用一个函数。

https://learn.microsoft.com/zh-cn/sql/t-sql/queries/from-using-pivot-and-unpivot?view=sql-server-ver16

SQL Server
SQL Server
Microsoft 关系数据库管理和分析系统的一个系列,用于实现电子商务、业务线和数据仓库解决方案。
166 个问题
0 个注释 无注释
{count} 票

接受的答案
  1. LiHongMSFT-4306 27,961 信誉分
    2024-03-22T03:28:22.84+00:00

    我可以在PIVOT中同时使用两个聚合函数吗?比如说SUM和AVG。

    官方文档中的语法表明只可以一个聚合函数。

    如果你想要同时使用两个聚合函数进行计算的话,我建议你使用SUM(CASE WHEN ...)或者AVG(CASE WHEN ...)。

    参考这个例子:

    CREATE TABLE #TEST(ItemCode INT,[Year] INT,Quantity INT)  
    INSERT INTO #TEST VALUES(101,2019,111),(102,2019,222),(103,2020,333),(101,2020,111),(102,2021,222),(103,2021,222)  
    SELECT * FROM #TEST 
    SELECT ItemCode,  
           SUM(CASE WHEN [Year]=2019 THEN Quantity END) AS [2019 SUM],  
    	   AVG(CASE WHEN [Year]=2019 THEN Quantity END) AS [2019 AVG],  
    	   SUM(CASE WHEN [Year]=2020 THEN Quantity END) AS [2020 SUM],  
    	   AVG(CASE WHEN [Year]=2020 THEN Quantity END) AS [2020 AVG],  
    	   SUM(CASE WHEN [Year]=2021 THEN Quantity END) AS [2021 SUM],  
    	   AVG(CASE WHEN [Year]=2021 THEN Quantity END) AS [2021 AVG]  
    FROM #TEST  
    GROUP BY ItemCode  
    

    如果答案是正确的解决方案,请点击“接受答案”并投赞成票。如果您对此答案有其他疑问,请点击“评论”。


0 个其他答案

排序依据: 非常有帮助

你的答案

问题作者可以将答案标记为“接受的答案”,这有助于用户了解已解决作者问题的答案。