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

不足している日付を見つけて結果に追加します-MySql

    完全な解決策ではないかもしれませんが、結果が得られる可能性があります。UNION ALLの後の2番目のクエリ 内部SELECTでは、MIN(created)の間のすべての日付を返す必要があります およびMAX(created) カウンター値0のテーブルの。

        SELECT SUM(a.ctr)
          ,a.datecreated
      FROM 
      (
    
        SELECT COUNT(*) as ctr, date_format(created, '%d/%m/%y ') as datecreated 
        FROM mimesi_indexer.meta_served_clips
        GROUP BY DATE(created)
    UNION ALL 
        select 0 as ctr, date_format(selected_date, '%d/%m/%y ') as datecreated 
           from 
         (select adddate('1970-01-01',t4.i*10000 + t3.i*1000 + t2.i*100 + t1.i*10 + t0.i) selected_date from
         (select 0 i union select 1 union select 2 union select 3 union select 4 union select 5 union select 6 union select 7 union select 8 union select 9) t0,
         (select 0 i union select 1 union select 2 union select 3 union select 4 union select 5 union select 6 union select 7 union select 8 union select 9) t1,
         (select 0 i union select 1 union select 2 union select 3 union select 4 union select 5 union select 6 union select 7 union select 8 union select 9) t2,
         (select 0 i union select 1 union select 2 union select 3 union select 4 union select 5 union select 6 union select 7 union select 8 union select 9) t3,
         (select 0 i union select 1 union select 2 union select 3 union select 4 union select 5 union select 6 union select 7 union select 8 union select 9) t4) v
        where selected_date 
        between (SELECT MIN(created) FROM mimesi_indexer.meta_served_clips)
            and (SELECT MAX(created) FROM mimesi_indexer.meta_served_clips)
       ) a
       group by a.datecreated
       order by month(a.datecreated), date(a.datecreated)
    



    1. MySQLiを使用してデータベース内のすべてのテーブルを一覧表示します

    2. mySQLselectコマンドから取得するデータをテーブルに一度に挿入します

    3. Docker with mysql:エラーは、mysqldにディレクトリへのアクセス権がないことを意味します

    4. SQL Server(2008)IN()のSPにArrayListまたはStringを渡す