[英]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.