多くの場合、商品の売り上げを月ごとに並べて比較し、商品の売り上げを判断する必要があります。データがMySQL/PostgreSQL / SQL Serverデータベースに保存されている場合に、月ごとに製品の売上を比較するSQLクエリを次に示します。
月ごとの製品売上を比較するSQLクエリ
テーブルsales(order_date、product、sale)があるとします。 すべての製品の毎日の売り上げが含まれています。
mysql> create table sales(product varchar(255),order_date date,sale int); mysql> insert into sales values('Pen','2020-01-01',20),('Paper','2020-01-02',25), ('Paper','2020-01-03',15),('Pen','2020-01-04',30),('Paper','2020-01-05',20) ...; mysql> select * from sales; +---------+------------+------+ | product | order_date | sale | +---------+------------+------+ | Pen | 2020-01-01 | 20 | | Paper | 2020-01-02 | 25 | | Paper | 2020-01-03 | 15 | | Pen | 2020-01-04 | 30 | | Pen | 2020-01-05 | 20 | | ... | ... | ...| +---------+------------+------+
月ごとの製品売上を比較するSQLクエリ
ほとんどの場合、すべての製品の販売行が、個別の列ではなく、個別の行に上下に表示されます。製品の売上を月ごとに比較する場合は、このデータを製品ごとにピボットする必要があります。 列。
製品ごとに販売テーブルをピボットするためのクエリは次のとおりです。 桁。詳細を見ていきます
mysql> SELECT date_format(order_date,'%b-%y') as order_date, sum(IF(product='Pen', sale, NULL)) AS Pen, sum(IF(product='Paper', sale, NULL)) AS Paper FROM sales GROUP BY year(order_date),month(order_date),date_format(order_date,'%b-%y') ; +------------+------+-------+ | order_date | Pen | Paper | +------------+------+-------+ | Jan-20 | 200 | 320 | | Feb-20 | 250 | 220 | | Mar-20 | 230 | 290 | | Apr-20 | 190 | 210 | | May-20 | 210 | 230 | | Jun-20 | 320 | 120 | | Jul-20 | 330 | 220 | | Aug-20 | 210 | 260 | | Sep-20 | 120 | 220 | | Oct-20 | 280 | 120 | | Nov-20 | 290 | 280 | | Dec-20 | 200 | 320 | +------------+------+-------+
上記のクエリでは、DATE_FORMAT関数を使用して、 order_dateから月の名前を取得します。 桁。さらに、IFステートメントを使用します productごとにピボットテーブルを作成するには 桁。この場合、各行について、IFステートメントは製品列の値をチェックし、製品名に応じて「ペン」または「紙」というラベルの付いた列に販売値を追加します。また、月の名前でGROUP BYを実行して、毎日の注文から毎月の製品売上を取得します。
製品ごとの月間売上高を計算したら、以下に示すように、グラフ作成ツールを使用して折れ線グラフにプロットできます。これは、Ubiqを使用して作成された折れ線グラフの例です。
ドラッグアンドドロップするだけでUbiqでピボットテーブルを作成できることをご存知ですか?
MySQL / PostgreSQL / SQL Serverデータベースからチャート、ダッシュボード、レポートを作成する場合は、Ubiqを試すことができます。 14日間の無料トライアルを提供しています。