簡體   English   中英

mysql每天計算多個項目

[英]mysql count multiple items per day

我希望有一個結果集,DATE, item1計數,item2的計數. 全部來自同一張桌子。 計算相同的數據列。

示例輸出:

DATE | Oranges   | Apples
3-28 | 4  | 5
3-29 | 3  | 2

日志存儲:

id, item, date
1 | Orange |  3-28
2 | Apple  |  3-28
2 | Apple  |  3-29
1 | Orange  |  3-29

我嘗試使用第二組,但不確定它是否正確計數。

概念?:

Select count(item) as apples, count(item) as orange, date(date_entered) FROM table GROUP by date(date_entered)

你所要求的被稱為“樞軸查詢”。 要在MySQL中完成它,您可以使用帶有條件的SUM()聚合,如果匹配的水果類型,則返回1或0:

SELECT
  date,
  /* CASE condition returns 1 if the string matches, 0 otherwise
     and those are added up to get the count of matching rows */
  SUM(CASE WHEN item = 'Apple' THEN 1 ELSE 0 END) AS apples,
  SUM(CASE WHEN item = 'Orange' THEN 1 ELSE 0 END) AS oranges
FROM `table`
/* Apply the aggregate group over `date` */
GROUP BY date

請注意,如果您確切知道要返回的輸出列數,則這是常規模式。 如果您未提前知道所有可能的值(以及列),則需要動態生成SUM(CASE...)列表。

暫無
暫無

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

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