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

प्रत्येक खाते के लिए नवीनतम अनुबंध ढूँढना

ROW_NUMBER का उपयोग करें :

SELECT account, "date", "value"
FROM
(SELECT 
  account, "date", "value",
  ROW_NUMBER() OVER (PARTITION BY account ORDER BY "date" DESC) rn
 FROM yourTable
) t
WHERE rn=1;

ध्यान दें कि @NiVeR द्वारा दिया गया अब हटाया गया उत्तर पर्याप्त होगा यदि हम केवल प्रत्येक खाते के लिए अधिकतम तिथि चाहते हैं। यदि हमें प्रत्येक रिकॉर्ड से मूल्य, या सामान्य रूप से अन्य स्तंभों की भी आवश्यकता है, तो हमें एक अतिरिक्त जुड़ाव करना होगा, या पंक्ति संख्या का उपयोग करना होगा जैसा कि मैंने ऊपर किया है।

देखें SQL Fiddle पर डेमो



  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. Oracle DB से प्राप्त डेटा के लिए javaFX TableView में स्वरूपण दिनांक कॉलम

  3. सही मान नहीं लौटाने के बीच के महीने

  4. आप कैसे जानते हैं कि एक अच्छा सूचकांक क्या है?

  5. तार के बीच समानता वापस करने के लिए Oracle समारोह