Maison  >  Questions et réponses  >  le corps du texte

Ajouter la valeur la plus élevée en tant que colonne à l'aide de la fonction de fenêtre

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粉043295337P粉043295337179 Il y a quelques jours420

répondre à tous(2)je répondrai

  • 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

    Ça marche pour moi

    répondre
    0
  • P粉959676410

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

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

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

    Voir Démo.

    répondre
    0
  • Annulerrépondre