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

द्वारा ओवर पार्टीशन के सिंटैक्स में त्रुटि 1064 (42000) डेटाबेस त्रुटि

विंडो फ़ंक्शन (जैसे lead() ) केवल MySQL 8.0 में जोड़े गए थे, इसलिए वे संस्करण 5.7 में उपलब्ध नहीं हैं। आप lead() का अनुकरण कर सकते हैं इस तरह से सेल्फ-जॉइन के साथ:

select t.*, tlead.state, tlead.timestamp
from FinalTable t
left join FinalTable tlead 
    on tlead .id = t.id
    and tlead.timestamp = (
        select min(t1.timestamp) 
        from FinalTable t1 
        where t1.id = t.id and t1.timestamp > t.timestamp
    )

साइड नोट:इस विधि के ठीक से काम करने के लिए, आपको उसी id . के बाद के रिकॉर्ड की आवश्यकता होगी अलग timestamp के लिए s - आपके द्वारा दिखाए गए नमूना डेटा में ऐसा नहीं है, जहां सभी टाइमस्टैम्प समान हैं (मुझे लगता है कि यह आपके नमूना डेटा में एक टाइपो है)।




  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. CURRENT_TIME उदाहरण – MySQL

  3. सी . में एसक्यूएल इंजेक्शन को रोकना

  4. MySQL:फुलटेक्स्ट सर्च में कुछ गड़बड़ है - कोई परिणाम नहीं लौटाना

  5. लेन-देन में तालिका से DELETE के बाद INSERT पर डुप्लिकेट प्रविष्टि