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

MySQL - एक ही तालिका की पंक्तियों के बीच अंतर खोजें

यहाँ चर के बिना एक समाधान है। मुझे लगता है कि आपके पास thetable . नामक तालिका में आपका initail डेटा है ।

SELECT date, time, ip,
    result - IFNULL( (
        SELECT MAX( result ) 
        FROM thetable
        WHERE ip = t1.ip
        AND ( date < t1.date
            OR date = t1.date AND time < t1.time )
    ) , 0) AS diff
FROM thetable AS t1
ORDER BY ip, date, time

यहां हमें उप-चयन के साथ पिछला मान मिलता है (अधिकतम result उसी ip . से पिछले टाइमस्टैम्प में से ) IFNULL हमें 0 देता है यदि यह पहला मान था, इसलिए प्रारंभिक परिणाम सही ढंग से प्रदर्शित होते हैं।

मैं निम्न अनुक्रमणिका को thetable . में जोड़ने का भी सुझाव देता हूं :

CREATE INDEX sort1 ON thetable (ip, date, time);


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. परीक्षण के लिए अपने MySQL उदाहरणों को कैसे विफल या क्रैश करें?

  2. आरोही और अवरोही दोनों प्रकार से MYSQL क्रम

  3. केवल एक फ़ील्ड और अन्य सभी फ़ील्ड मान डुप्लिकेट के साथ रिकॉर्ड्स का चयन कैसे करें?

  4. पता लगाएं कि MySQL में मान संख्या है या नहीं

  5. यादृच्छिक परिणाम लौटाएं (रैंड द्वारा क्रम ())