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

AVG()を使用したMySQLクエリの問題

    これらが本当に毎日更新される場合は、日付演算を使用してください:

    SELECT bline_id, AVG(flow) as flowavg
    FROM blf
    WHERE bline_id BETWEEN 1 AND 30 and
          date >= date_sub(now(), interval 10 day)
    GROUP BY bline_id
    ORDER BY bline_id ASC
    

    それ以外の場合は、カウンターを配置する必要があります。これは、相関サブクエリで実行できます。

    SELECT bline_id, AVG(flow) as flowavg
    FROM (select blf.*,
                 (select COUNT(*) from blf blf2 where blf2.bline_id = blf.bline_id and blf2.date >= blf.date
                 ) seqnum
          from blf
         ) blf
    WHERE bline_id BETWEEN 1 AND 30 and
          seqnum <= 10
    GROUP BY bline_id
    ORDER BY bline_id ASC
    


    1. mysqlselectクエリの最適化とmysqlでの制限の仕組み

    2. 教育のためのオープンマーケットプレイスのモデリング

    3. MariaDBとTableauを使い始めるための5つの簡単なステップ

    4. 非IEブラウザと同等のonbeforeprint()およびonafterprint()