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

過去12か月の月ごとのMysqlレコードの合計

    毎月の行を含むテーブルを使用して外部結合を行う必要があります。そのようなテーブルがないと仮定すると、ハードコードされたUNIONクエリを使用してその場でテーブルを作成できます:

    SELECT * FROM
        (SELECT DATE_FORMAT(now(), "%b") as Month
         UNION
         SELECT DATE_FORMAT(now() - INTERVAL 1 MONTH), "%b")
         UNION
         SELECT DATE_FORMAT(now() - INTERVAL 2 MONTH), "%b")
         UNION
         ...
         SELECT DATE_FORMAT(now() - INTERVAL 11 MONTH), "%b")) AS Months
    LEFT JOIN (SELECT DATE_FORMAT(drives.timestamp, "%b") AS Month,
                     drives.timestamp,
                     DATE_FORMAT(drives.timestamp, "%d-%m-%Y %H:%i:%s") AS Exact_date,
                     drives.departure,
                     drives.destination,
                     drives.route,
                     CONCAT(drivers.name, " ", drivers.surname) as driver,
                     drivers.id as driver_id
                     FROM drives, drivers WHERE drives.driver = drivers.id 
                     AND drives.timestamp > DATE_SUB(now(), INTERVAL 12 MONTH)) data
    ON Months.Month = data.Month
    ORDER BY data.timestamp
    

    レコードのない月には、NULLの行が1つあります。 データ列にあります。




    1. mysqlの列から複数のレコード(行)を選択するにはどうすればよいですか?

    2. 'xml'をSQLServerにインポートします

    3. mysqlで生年月日から年齢を計算します

    4. Python3.7用のMySQLパッケージ