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

mysql - दिनांक =n के साथ दिनांक =n-1 . के लिए तार से मानों की तुलना करें

यदि आप MySQL 8.0 चला रहे हैं, तो आप lag() . का उपयोग कर सकते हैं :

select
    dte,
    country,
    sport,
    rnk,
    lag(rnk) over(partition by country, sport order by dte) rnk_1,
    lag(rnk) over(partition by country, sport order by dte) - rnk rank_diff
from mytable

यदि आपको किसी निश्चित तिथि को फ़िल्टर करने की आवश्यकता है, तो आप इसे बाहरी क्वेरी में कर सकते हैं:

select *
from (
    select
        dte,
        country,
        sport,
        rnk,
        lag(rnk) over(partition by country, sport order by dte) rnk_1,
        lag(rnk) over(partition by country, sport order by dte) - rnk rank_diff
    from mytable
) t
where dte = '2000-01-31'

कृपया ध्यान दें कि date और rank MySQL फ़ंक्शंस के नाम हैं, इसलिए कॉलम नामों के लिए एक अच्छा विकल्प नहीं है। मैंने क्वेरी में कॉलम का नाम बदल दिया।



  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 प्रमाणीकरण के लिए LDAP (AD) का उपयोग करना

  2. MySQL प्रमाणीकरण प्रकार को मानक से caching_sha2_password में बदल रहा है

  3. MySQL ट्रिगर में गणना के बाद वैरिएबल NULL हो रहा है

  4. Django में manage.py के साथ सीएलआई से डेटाबेस को साफ़ करने का सबसे आसान तरीका क्या है?

  5. JDBC डेटाबेस से Jtable में डेटा प्राप्त करना