Fügen Sie mithilfe der Fensterfunktion den höchsten Wert als Spalte hinzu
P粉043295337
P粉043295337 2024-04-04 12:18:16
0
2
523

Ich habe einen Tisch wie diesen:

Abfrage zum Kopieren von Daten:

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);

Insbesondere wenn ich Fensterfunktionen verwende, möchte ich den höchsten Wert in der Tabelle erhalten. Wie unten gezeigt:

Aber wenn ich verwende:

select

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

from units_table

Der erste Wert, den es gibt, ist 0. Wenn ich das mache,

select

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

from units_table

Fehler auslösen. Wie konkret sollte die Fensterfunktion verwendet werden, um dieses Problem zu lösen? Vielen Dank im Voraus!

P粉043295337
P粉043295337

Antworte allen(2)
P粉616383625
select brand,units,
 FIRST_VALUE(units) OVER (ORDER BY UNITS DESC) as Highest
from units_table

对我有用

P粉959676410

您需要MAX()窗口函数:

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

请参阅演示

Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage