Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

mysql - Bandingkan nilai dari string untuk tanggal=n dengan tanggal=n-1

Jika Anda menjalankan MySQL 8.0, Anda dapat menggunakan 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

Jika Anda perlu memfilter pada tanggal tertentu, Anda dapat melakukannya di kueri luar:

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'

Harap diperhatikan bahwa date dan rank adalah nama fungsi MySQL, karenanya bukan pilihan yang baik untuk nama kolom. Saya mengganti nama kolom dalam kueri.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ubah nama kolom secara dinamis dalam pernyataan PDO

  2. Bagaimana cara mempercepat kueri sql? Indeks?

  3. Migrasi basis data Grails di server yang digunakan

  4. C# Konektor MySQL

  5. Fungsi MySQL FLOOR() – Membulatkan ke Bawah ke Bilangan Bulat Terdekat