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

एसक्यूएल जॉइन कठिनाई - शामिल होने की स्थिति में पंक्तियों को सीमित करने का एक तरीका प्रतीत होता है

Oracle 9i+, ROW_NUMBER का उपयोग करते हुए:

SELECT x.project_id,
       x.title,
       x.event_date,
       x.event_desc
  FROM (SELECT p.project_id,
               p.title,
               e.event_date,
               e.event_desc,
               ROW_NUMBER() OVER(PARTITION BY p.project_id
                                     ORDER BY e.event_date) AS rank
          FROM PROJECT p
     LEFT JOIN EVENT e ON e.project_fk = p.project_id
                      AND e.event_type = 301
         WHERE p.project_id IN (101,102,103)) x
 WHERE x.rank = 1

Oracle 9i+, WITH और ROW_NUMBER का उपयोग करना:

WITH example AS (
     SELECT p.project_id,
            p.title,
            e.event_date,
            e.event_desc,
            ROW_NUMBER() OVER(PARTITION BY p.project_id
                                  ORDER BY e.event_date) AS rank
       FROM PROJECT p
  LEFT JOIN EVENT e ON e.project_fk = p.project_id
                   AND e.event_type = 301
      WHERE p.project_id IN (101,102,103))
SELECT x.project_id,
       x.title,
       x.event_date,
       x.event_desc
  FROM example x
 WHERE x.rank = 1


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. संख्या डेटा प्रकार एसक्यूएल प्लस में # के रूप में दिख रहा है

  2. SQL सर्वर में Oracle लिंक्ड सर्वर बनाएं और कॉन्फ़िगर करें

  3. ऑरैकल संग्रहीत कार्यविधि में टेक्स्ट की कई पंक्तियों को बदलें या हटाएं

  4. Oracle तालिकाओं में बड़े आकार के डेटा को कैसे सम्मिलित/अपडेट करें?

  5. अखंडता बाधा (...) का उल्लंघन किया गया - चाइल्ड रिकॉर्ड मिला, जावा, ओरेकल, हाइबरनेट