Rumah  >  Soal Jawab  >  teks badan

Tambahkan nilai tertinggi sebagai lajur menggunakan fungsi tetingkap

Saya ada meja seperti ini:

Pertanyaan untuk menyalin data:

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

Khusus menggunakan fungsi tetingkap, saya ingin mendapatkan nilai tertinggi dalam jadual. Seperti yang ditunjukkan di bawah:

Tetapi apabila saya menggunakan:

select

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

from units_table

Nilai pertama yang diberikan ialah 0. Jika saya melakukan ini,

select

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

from units_table

Baling ralat. Sejauh manakah Fungsi Tetingkap seharusnya digunakan untuk menyelesaikan masalah ini? Terima kasih terlebih dahulu!

P粉043295337P粉043295337179 hari yang lalu423

membalas semua(2)saya akan balas

  • 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

    Berfungsi untuk saya

    balas
    0
  • P粉959676410

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

    Anda perlukan MAX()Fungsi tetingkap:

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

    Lihat Demo.

    balas
    0
  • Batalbalas