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

MySQL:レコード間の平均間隔

    直感的には、質問する内容は、最初の日付と最後の日付の間の間隔を、日付の数から1を引いた数で割ったものに相当する必要があります。

    もっと詳しく説明させてください。日付が線上の点であると想像してください(+ 存在する日付です、- 日付が欠落していて、最初の日付は12日であり、説明のために最後の日付を12月24日に変更しました):

    ++----+---+-+
    

    さて、あなたが本当にやりたいことは、これらの行の間に日付を均等に配置し、それぞれの行の間にどれくらいの長さがあるかを見つけることです:

    +--+--+--+--+
    

    これを行うには、最後の日と最初の日の間の日数(この場合は24-12 =12)を取得し、スペースを空ける必要がある間隔の数(この場合は4)で除算します。12 / 4 = 3

    MySQLクエリを使用する

    SELECT DATEDIFF(MAX(dt), MIN(dt)) / (COUNT(dt) - 1) FROM a;
    

    これはこのテーブルで機能します(値を使用すると2.75が返されます):

    CREATE TABLE IF NOT EXISTS `a` (
      `dt` date NOT NULL
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
    
    INSERT INTO `a` (`dt`) VALUES
    ('2010-12-12'),
    ('2010-12-13'),
    ('2010-12-18'),
    ('2010-12-22'),
    ('2010-12-24');
    


    1. MySqlは行を列に転置し、列を行に転置します

    2. mysql-pythonのインストールの問題(mac os x lionの場合)

    3. PDOとpg_*関数

    4. RailsでのUTF8MySQLの問題-utf8_general_ciでのエンコーディングの問題