Mendapatkan nilai maksimum untuk setiap ID pengguna yang unik di Oracle
Panduan ini menunjukkan bagaimana untuk mengekstrak nilai maksimum yang berkaitan dengan setiap ID pengguna yang berbeza dari jadual Oracle. Anggapkan jadual yang berstruktur seperti berikut:
<code>UserId, Value, Date</code>
dan yang sepadan UserId
di mana Value
adalah yang paling terkini untuk setiap pengguna. Date
SELECT t1.* FROM mytable t1 LEFT OUTER JOIN mytable t2 ON (t1.UserId = t2.UserId AND t1."Date" < t2."Date") WHERE t2.UserId IS NULL;
untuk membandingkan setiap baris dalam LEFT OUTER JOIN
(aliased as mytable
) dengan semua baris lain (aliased as t1
) yang sama t2
yang sama. Keadaan Join UserId
memastikan bahawa hanya baris dengan tarikh kemudian dipertimbangkan. t1."Date" < t2."Date"
menapis hasilnya. Baris di mana WHERE t2.UserId IS NULL
adalah t2.UserId
menunjukkan bahawa tiada baris lain dengan NULL
yang sama dan kemudian UserId
ada. Oleh itu, baris ini mewakili tarikh maksimum bagi setiap pengguna. Date
Contoh:
jika mengandungi data berikut: mytable
UserId | Value | Date |
---|---|---|
1 | 5 | 2023-03-08 |
1 | 10 | 2023-03-15 |
2 | 3 | 2023-04-01 |
2 | 7 | 2023-04-10 |
UserId | Value | Date |
---|---|---|
1 | 10 | 2023-03-15 |
2 | 7 | 2023-04-10 |
Atas ialah kandungan terperinci Bagaimana untuk Mencari Nilai Maksimum untuk Setiap ID Pengguna yang Berbeza dalam Jadual Oracle?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!