簡體   English   中英

MYSQL-每年獲取一行,每個月總計

[英]MYSQL - get a row for each year, with total sum for each month

我有一張購買交易表。 每筆交易都有時間戳和購買金額(美元)。

我正在嘗試從中創建一些統計信息。 我想為每年提取一行,其中包含一年中每個月的總和。 (我希望沒有交易的月份總計為0-不省略。)

我知道我可以對所有內容進行簡單的SELECT並在PHP中進行處理,但是我想知道是否有可能讓MySQL進行工作並按我的意願提取數據?

我想看到的是這樣的行:

Year, Total_Jan, Total_Feb, ... Total_Dec, Total_Year

我能夠得到每年的總數,但是我不知道如何將每月的總數計入同一行。

SELECT
  YEAR(dt) as the_year,
  SUM(mc_gross) AS sum_total
FROM
  transactions
GROUP BY
  the_year
SELECT
  YEAR(dt) as the_year,
  SUM(CASE WHEN MONTH(dt) = 1 THEN mc_gross ELSE 0 END) AS Total_Jan,
  SUM(CASE WHEN MONTH(dt) = 2 THEN mc_gross ELSE 0 END) AS Total_Feb,
  ...
  SUM(CASE WHEN MONTH(dt) = 12 THEN mc_gross ELSE 0 END) AS Total_Dec
FROM
  transactions
GROUP BY
  the_year;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM