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

Kondisi MySQL dari Beberapa Baris

Ya, Anda perlu melakukan ini dengan subquery, coba dengan sesuatu seperti ini (jika Anda ingin baris ke-4 mengakses tanggal di baris ke-3):

SELECT  mo.AgentID, mo.date,
        @r AS 'LAG(date)',
        (case when @r<Date then 'YES' when @r is null then 'IS NULL' else 'NO' end) 'Is Bigger',
        (@r := Date) AS Date

FROM    (
        SELECT  m.*
        FROM    (
                SELECT  @_date = NULL
                ) variable,
                data m
        ORDER BY
                AgentID 
        ) mo
WHERE  (CASE WHEN @_date IS NULL OR @_date <> date THEN @r := NULL ELSE NULL END IS NULL)
        AND (@_date := date) IS NOT NULL

Anda dapat melihat demo yang berfungsi di sini

Atau Anda dapat mencoba kueri ini jika Anda ingin baris ke-3 memiliki akses ke tanggal di baris ke-4

SELECT AgentID,date,LEAD_date,concat(Difference,' days') FROM
(SELECT  mo.AgentID, 
        @r AS LEAD_date,
        DATEDIFF(@r,Date) as Difference,
        (@r := Date) AS Date

FROM    (
        SELECT  m.*
        FROM    (
                SELECT  @_date = NULL
                ) variable,
                data m
        ORDER BY
                AgentID,date desc 
        ) mo
WHERE  (CASE WHEN @_date IS NULL OR @_date <> date THEN @r := NULL ELSE NULL END IS NULL)
        AND (@_date := date) IS NOT NULL) T
order by AgentID,date;

Anda dapat melihat demo yang berfungsi di sini




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Data disimpan dua kali dalam database MySQL. Tidak tahu apa yang saya lakukan salah?

  2. Mengapa batas waktu maksimum MySQL 838:59:59?

  3. Query Parameterized untuk MySQL dengan C#

  4. Bagaimana cara menyatukan semua kueri SQL-SQLite dengan pernyataan kasus?

  5. Memasukkan record ke dalam tabel MySQL menggunakan Java