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

前月(同じ年)のパーセンテージを計算する

    月の数から1を引いた数で、クエリをそれ自体に結合したままにすることができます。次に、1行に先月の月の合計があり、パーセンテージを計算できます。次のようになります:

    SELECT monthname(concat('1970-', lpad(A.MONTH, 2, '0'), '-01')) AS MONTH,
           A.SALE_PRICE,
           CASE
             WHEN A.SALE_PRICE IS NULL
               THEN NULL
             WHEN B.SALE_PRICE IS NULL
               THEN NULL
             WHEN A.SALE_PRICE = 0
               THEN NULL
             ELSE
               (B.SALE_PRICE / A.SALE_PRICE - 1) * 100
           END AS PERCENTAGE
           FROM (SELECT month(DATE_PURCHASED) AS MONTH,
                        sum(SALE_PRICE) AS SALE_PRICE,
                        FROM SALE
                        WHERE year(DATE_PURCHASED) = 2017
                        GROUP BY MONTH) A
                LEFT JOIN (SELECT month(DATE_PURCHASED) AS MONTH,
                                  sum(SALE_PRICE) AS SALE_PRICE,
                                  FROM SALE
                                  WHERE year(DATE_PURCHASED) = 2017
                                  GROUP BY MONTH) B
                          ON A.MONTH - 1 = B.MONTH
           ORDER BY A.MONTH;
    

    Aに注意してください およびB クエリであるため、ONで必要になるため、月が数値になるように変更します。 条項。




    1. 列の値からドットとコンマを削除する

    2. RowDataPacketオブジェクトにアクセスする方法

    3. PHPがPDOODBCドライバーに接続できない

    4. UTF-8文字に最大3バイトが必要かどうかを確認します