簡體   English   中英

在新欄中需要最大的價值

[英]Need the greatest value in new column

所以我有一個看起來像這樣的表:

ID     amt_1     amt_2     amt_3     amt_4
001    100.00    300.00     50.00    200.00
002    200.00    400.00    100.00    200.00 
003    700.00     50.0     200.00    700.00

我想創建一個新列,該列僅包含每個ID的最大值,即:

ID     amt_1     amt_2     amt_3     amt_4     NEW_COL
001    100.00    300.00     50.00    200.00    300.00
002    200.00    400.00    100.00    200.00    400.00
003    700.00     50.0     200.00    700.00    700.00

並不是說我認為CTE會對我有幫助,但是我不能說我不能使用它們,因為這是導入到不認識CTE的Tableau中的。

使用CASE Statement您可以在各列中找到最大值。

SELECT ID,
       amt_1,
       amt_2,
       amt_3,
       amt_4,
       CASE
         WHEN amt_1 >= amt_2 AND amt_1 >= amt_3 AND amt_1 >= amt_4 THEN amt_1
         WHEN amt_2 >= amt_1 AND amt_2 >= amt_3 AND amt_2 >= amt_4 THEN amt_2
         WHEN amt_3 >= amt_1 AND amt_3 >= amt_2 AND amt_3 >= amt_4 THEN amt_3
         WHEN amt_4 >= amt_1 AND amt_4 >= amt_2 AND amt_4 >= amt_3 THEN amt_4
       END NEW_COL
FROM   Tablename 

如果您使用的是SQL SERVER 2008 or later versions嘗試以下操作

SELECT ID,amt_1,amt_2,amt_3,amt_4,
  (SELECT Max(amt) FROM (VALUES (amt_1), (amt_2), (amt_3),(amt_4)) AS value(amt))  NEW_COL
FROM tablename

使用SQL,您可以使用subselect執行以下操作:

SELECT MAX(SELECT amt_1 FROM table_name
UNION
SELECT amt_2 FROM table_name
UNION
SELECT amt_3 FROM table_name
// ...) as maxValue, id FROM table_name

我只是大聲思考,嘗試查看此偽代碼是否有效,請注意,您可以創建視圖或臨時表來存儲從4個選擇的並集返回的表。

祝好運

如果您在子查詢中使用一組並集來選擇每個amt_#值,然后從中選擇每個id的最大值(按ID分組),它應該會為您提供所需的信息:

select
    mt.ID,
    mt.amt_1,
    mt.amt_2,
    mt.amt_3,
    mt.amt_4,
    max(amt)
from (
    select
        ID,
        amt_1 as amt
    from MyTable
    Union
    select
        ID,
        amt_2
    from MyTable
    Union
    select
        ID,
        amt_3
    from MyTable
    Union
    select
        ID,
        amt_4
    from MyTable
) t1
    inner join MyTable mt on t1.id = mt.ID
group by mt.ID, amt_1, amt_2, amt_3, amt_4

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM