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

एक ही तालिका से Oracle SQL MIN और MAX संयोजन

नमूना डेटा के लिए, निम्नलिखित भी काम करता है

WITH
RawData AS (
  SELECT
    id1
    , jobID
    , message
    , TIMESTAMP_for_start_message timeStamp
    , time_in_seconds
  FROM StartMessageTable
  UNION ALL
  SELECT
    id1
    , jobID
    , message
    , TIMESTAMP_success_msg_received
    , time_in_seconds
  FROM SuccessMessageTable
  ORDER BY id1, jobID, 4
),
Detail AS (
  SELECT
    id1
    , jobID
    , message message1
    , LEAD (message, 1) OVER (ORDER BY id1, jobID, timeStamp) message2
    , timeStamp timeStamp1
    , LEAD (timeStamp, 1) OVER (ORDER BY id1, jobID, timeStamp) timeStamp2
    , time_in_seconds secs1
    , LEAD (time_in_seconds, 1) OVER (ORDER BY id1, jobID, timeStamp) secs2
  FROM RawData
)
SELECT
  id1
  , timeStamp1 TIMESTAMP_for_start_message
  , timeStamp2 TIMESTAMP_for_success_message
  , jobID
  , 'start' msgStart
  , 'success' msgSuccess
  , secs1 start_secs
  , secs2 success_secs
FROM Detail
WHERE (message1 = 'start' AND message2 = 'successful') OR message2 IS NULL
ORDER BY timeStamp1
;

"Start_secs" कॉलम में पहले और आखिरी मान के बारे में समान चेतावनी के साथ।
एसक्यूएल फिडल



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. क्या मैं अज्ञात पीएल/एसक्यूएल ब्लॉक से PHP को मान वापस कर सकता हूं?

  2. Oracle IN ऑपरेटर में JPA और 1000 ID का उपयोग

  3. Oracle फास्ट रिकवरी एरिया

  4. plsql से बाहर/वापसी में CLOB मान (अवैध LOB लोकेटर निर्दिष्ट:ORA-22275)

  5. ORA-01882:एंटिटी फ्रेमवर्क में टाइमज़ोन क्षेत्र नहीं मिला