SQL的Excel公式

问题描述 投票:0回答:1

我想在我的MSSQL数据库中添加一列带有计算值的列,但我不知道如何创建SQL代码

我的数据包含PricePerUnit和Instance_Type列

我希望新的计算值列显示每个Instance_Type比同一个Instance_Type最便宜的百分比。例如,最昂贵的c5.12xlarge在第一行(伦敦),因此便宜0%,但是同一个c5.12xlarge是爱尔兰的便宜4.95%,而在俄勒冈州,c5.12xlarge的相同Instance_Type是15.84%更便宜我希望SQL中的计算值列显示0%和4.95%。 15.84%,依此类推。

在Excel中,我将使用以下公式=(MAXIFS(A:A,B:B,B2)-A2)/ MAXIFS(A:A,B:B,B2)

该数据库表称为AmazonEC2

这里是它在Excel中工作的图像。第一个蓝色表与SQL数据库中的数据相同,黑色表表示我要在SQL中实现的功能。

Excel tables with working formula

sql-server excel calculated-columns
1个回答
0
投票

我认为将其作为计算列来做不会很好。您可以使用以下SQL来检索数据并在检索时计算PercentCheaper。您也可以基于此SQL创建视图。

SELECT
     x.PricePerUnit
   , x.Intstance_Type
   , x.Instance_Family
   , x.Location
   , (x.MaxPricePerUnit - x.PricePerUnit) / x.MaxPricePerUnit AS PercentCheaper
FROM (
         SELECT
              PricePerUnit
            , Intstance_Type
            , Instance_Family
            , Location
            , MAX(PricePerUnit) OVER (PARTITION BY Intstance_Type) AS MaxPricePerUnit
         FROM AmazonEC2
     ) x;
© www.soinside.com 2019 - 2024. All rights reserved.