[英]mysql multiple count and group values in a same field
我環顧四周但找不到答案我需要一個查詢,根據同一字段中的值返回2組值作為字段名稱
例子我有一張桌子
NAME, VALUE name1, 2 name1, 2 name1, 3 name1, 4 name2, 2 name2, 2 name2, 3 name2, 4
現在我想在一個組中對值2和3進行計數和分組,在另一個組中對值4進行分組,因此我的結果看起來像這樣
NAME, GRP1_COUNT, GRP2_COUNT name1, 3, 1 name2, 3, 1
我嘗試了JOIN
和UNION
沒有太多運氣任何幫助贊賞
MySQL沒有pivot函數,因此您必須使用帶有CASE
表達式的聚合函數來轉換數據。 對於此類計算,您將使用COUNT
或SUM
:
select name,
sum(case when value in (2,3) then 1 else 0 end) GRP1_COUNT,
sum(case when value = 4 then 1 else 0 end) GRP2_COUNT
from yourtable
group by name
COUNT
版本:
select name,
count(case when value in (2,3) then VALUE end) GRP1_COUNT,
count(case when value = 4 then VALUE end) GRP2_COUNT
from yourtable
group by name
試試這個
SELECT
name,
sum(case when value=2 or value=3 then 1 else 0 end),
sum(case when value=4 then 1 else 0 end)
FROM YourTable
GROUP BY name
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.