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

MySQL - सहसंबद्ध सबक्वेरी में कुल डेटा को सीमित करते समय नेस्टेड सबक्वेरी के विकल्प

नहीं, आप FROM . में correalted उपश्रेणियों का उपयोग नहीं कर सकते खंड। लेकिन आप उनका उपयोग ON . में कर सकते हैं शर्तें:

SELECT AVG(d.DailyData1) Data1_20DayAvg 
       --- other aggregate stuff on d (Datatable)
FROM 
      ( SELECT '2012-01-23' AS DateChecked
      ) AS dd
  JOIN
      DataTable AS d
    ON
      d.Date <= dd.DateChecked
    AND
      d.Date >= COALESCE( 
      ( SELECT DailyData1 
        FROM DataTable AS last20 
        WHERE Date <= dd.DateChecked 
          AND (other conditions for last20)
        ORDER BY Date DESC 
        LIMIT 1 OFFSET 19
      ), '1001-01-01'   )
WHERE (other conditions for d Datatable)

इसी तरह, कई तिथियों के लिए:

SELECT dd.DateChecked 
     , AVG(d.DailyData1) Data1_20DayAvg 
       --- other aggregate stuff on d (Datatable)
FROM 
      ( SELECT DISTINCT Date AS DateChecked
        FROM DataTable 
      ) AS dd
  JOIN
      DataTable AS d
    ON
      d.Date <= dd.DateChecked
    AND
      d.Date >= COALESCE( 
      ( SELECT DailyData1 
        FROM DataTable AS last20
        WHERE Date <= dd.DateChecked 
          AND (other conditions for last20)
        ORDER BY Date DESC 
        LIMIT 1 OFFSET 19
      ), '1001-01-01'   )
WHERE (other conditions for d Datatable)
GROUP BY 
      dd.DateChecked 

दोनों क्वेरीज़ मानती हैं कि Datatable.Date एक UNIQUE है बाधा।




  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. डेटाबेस आयात पर पारित स्क्रिप्ट टाइमआउट देना

  3. MySQL में गैर-संख्यात्मक वर्णों को कैसे बदलें?

  4. MySQL में अनेक-से-अनेक संबंध में चयन करें

  5. MySQL के साथ Visual Foxpro dbfs को कैसे सिंक करें?