Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

Oracle SQL क्वेरी:समय के आधार पर प्रति समूह नवीनतम मान प्राप्त करें

इस डेटा को देखते हुए ...

SQL> select * from qtys
  2  /

        ID TS                      QTY
---------- ---------------- ----------
         1 2010-01-04 11:00        152
         2 2010-01-04 11:00        210
         1 2010-01-04 10:45        132
         2 2010-01-04 10:45        318
         4 2010-01-04 10:45        122
         1 2010-01-04 10:30          1
         3 2010-01-04 10:30        214
         2 2010-01-04 10:30       5515
         4 2010-01-04 10:30        210

9 rows selected.

SQL>

... निम्न क्वेरी वह देती है जो आप चाहते हैं ...

SQL> select x.id
  2         , x.ts as "DATE"
  3         , x.qty as "QUANTITY"
  4  from (
  5      select id
  6             , ts
  7             , rank () over (partition by id order by ts desc) as rnk
  8             , qty
  9      from qtys ) x
 10  where x.rnk = 1
 11  /

        ID DATE               QUANTITY
---------- ---------------- ----------
         1 2010-01-04 11:00        152
         2 2010-01-04 11:00        210
         3 2010-01-04 10:30        214
         4 2010-01-04 10:45        122

SQL>

अपनी अतिरिक्त आवश्यकताओं के संबंध में, आप बाहरी WHERE क्लॉज में अतिरिक्त फ़िल्टर लागू कर सकते हैं। इसी तरह आप अतिरिक्त तालिकाओं को इनलाइन दृश्य में शामिल कर सकते हैं जैसे कि यह कोई अन्य तालिका थी।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. किसी उपयोगकर्ता के लिए सभी Oracle डेटाबेस विशेषाधिकार कैसे दिखाएं

  2. 12c डेटा रिडक्शन

  3. CURRENT_TIMESTAMP () Oracle में फ़ंक्शन

  4. Oracle में दृश्य और भौतिकीकृत दृश्य में क्या अंतर है?

  5. R12/R12.2 . में Oracle प्रपत्र