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

बिगक्वेरी:कई टेबल खोजें और first_seen और last_seen . के साथ एग्रीगेट करें

मैं सबसे पहले तालिकाओं को मिलाऊंगा (बिगक्वेरी में संघ के लिए वाक्यविन्यास अल्पविराम है)। फिर दो दृष्टिकोण हैं:

  1. विश्लेषणात्मक कार्यों FIRST_VALUE और LAST_VALUE का उपयोग करें।
SELECT id, timestamp_first, timestamp_last, data FROM
(SELECT 
  id,
  timestamp,
  FIRST_VALUE(timestamp) OVER(
    PARTITION BY id
    ORDER BY timestamp ASC
    ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING)
  AS timestamp_first,
  LAST_VALUE(timestamp) OVER(
    PARTITION BY id
    ORDER BY timestamp ASC
    ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING)
  AS timestamp_last
FROM table1, table2, table3
  1. पहला/आखिरी खोजने के लिए टाइमस्टैम्प पर एकत्रीकरण MIN/MAX का उपयोग करें और फिर उसी तालिका में वापस शामिल हों।
SELECT a.id id, timestamp_first, timestamp_last, data FROM
(SELECT id, data FROM table1,table2,table3) a
INNER JOIN
(SELECT 
   id, 
   MIN(timestamp) timestamp_first,
   MAX(timestamp) timestamp_last 
 FROM table1,table2,table3 GROUP BY id) b
ON a.id = b.id



  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/MySQL दिनांक/समय अंतर

  2. MySQL को Go से कनेक्ट करने का अनुशंसित तरीका क्या है?

  3. किसी शर्त के साथ पंक्तियों की गिनती करते समय मुझे MySQL में OR NULL की आवश्यकता क्यों है?

  4. प्रासंगिकता के आधार पर MySQL आदेश

  5. रेल ऐप के डीबी/मॉडल में आप व्यवसाय के घंटे कैसे स्टोर करेंगे?