搜尋

首頁  >  問答  >  主體

使用視窗函數將最高值新增為一列

我有一個如下表:

複製資料的查詢:

DROP TABLE IF EXISTS units_table;
CREATE TEMP TABLE units_table
(
 Brand varchar(100),
 units numeric(38,12)
);


  INSERT INTO units_table (Brand, units)
   VALUES ('A',200),('B',0),('C',300),('D',400),('E',1500),('F',700),('G',800),('H',450);

專門使用視窗函數,我想獲得表格中最高的值。如下圖所示:

但是當我使用時:

select

brand,
units,
FIRST_VALUE(units) OVER () as Highest

from units_table

它給出的第一個值為 0。如果我這樣做,

select

brand,
units,
FIRST_VALUE(units) OVER (ORDER BY UNITS) as Highest

from units_table

拋出錯誤。 具體應該如何使用Window Function來解決這個問題呢?預先感謝您!

P粉043295337P粉043295337262 天前565

全部回覆(2)我來回復

  • P粉616383625

    P粉6163836252024-04-05 11:32:53

    select brand,units,
     FIRST_VALUE(units) OVER (ORDER BY UNITS DESC) as Highest
    from units_table

    對我有用

    回覆
    0
  • P粉959676410

    P粉9596764102024-04-05 09:38:42

    您需要MAX()視窗函數:

    SELECT brand,
           units,
           MAX(units) OVER () AS Highest
    FROM units_table;

    請參閱演示

    回覆
    0
  • 取消回覆