sql >> データベース >  >> RDS >> Mysql

mysql-date=nとdate=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. MysqlはSELECT速度を改善します

    2. 2つの異なるジャンクションテーブルからのデータを組み合わせる

    3. UnicodeEncodeError:'latin-1'コーデックは文字をエンコードできません

    4. PHPで、配列の内容をテーブルに表示する方法