Ajouter la valeur la plus élevée en tant que colonne à l'aide de la fonction de fenêtre
P粉043295337
P粉043295337 2024-04-04 12:18:16
0
2
522

J'ai une table comme celle-ci :

Requête pour copier des données :

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

En utilisant spécialement les fonctions de fenêtre, je souhaite obtenir la valeur la plus élevée du tableau. Comme indiqué ci-dessous :

Mais quand j'utilise :

select

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

from units_table

La première valeur qu'il donne est 0. Si je fais ça,

select

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

from units_table

Lance une erreur. Dans quelle mesure la fonction Window doit-elle être utilisée spécifiquement pour résoudre ce problème ? Merci d'avance!

P粉043295337
P粉043295337

répondre à tous(2)
P粉616383625
select brand,units,
 FIRST_VALUE(units) OVER (ORDER BY UNITS DESC) as Highest
from units_table

Ça marche pour moi

P粉959676410

Vous avez besoin de MAX()Fonction fenêtre :

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

Voir Démo.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal