mysql如何分類統計數量

2021-09-09 04:57:56 字數 2121 閱讀 2814

比如我表test裡面有id,mc,xh三個字段(分別是自動編號,鋼材名稱(若干種),鋼材型號(大號,中號,小號))

id    mc            xh   

1鋼管 大號

2銅管 大號

3鐵管 小號

4鋁管 中號

5 鋼管 小號

我現在要分別統計出「mc」裡面的各種型號的東西有多少。意思是:

我要統計鋼管,銅管,鐵管,鋁管的大,中,小號各有多少條記錄。

並且mc裡面的是不固定的,可能還有金管,還有熟料管什麼的,,但是xh裡面只有三種情況,那就是大號,中號,小號:

1.在mysql中建立乙個測試資料表

create

table

`tb_test_count` (

`id`

bigint(20) not

null

, `mc`

varchar(255) character

set utf8mb4 default

null

, `xh`

varchar(255) character

set utf8mb4 default

null,

primary

key(`id`)

) engine

=innodb default charset=latin1;

2.插入一批資料

insert

into tb_test_count values(1,'

鋼管','大號'

);insert

into tb_test_count values(2,'

銅管','大號'

);insert

into tb_test_count values(3,'

鐵管','小號'

);insert

into tb_test_count values(4,'

鋁管','大號'

);insert

into tb_test_count values(5,'

鋁管','小號'

);insert

into tb_test_count values(6,'

鋼管','大號'

);insert

into tb_test_count values(7,'

鋼管','

小號');

3.查詢統計的sql語句

select mc,count(case

when xh='大號

'then

1end) as

大號,count(case

when xh='中號

'then

1end) as

中號,count(case

when xh='小號

'then

1end) as

小號from

tb_test_count

group

by mc

4.查詢結果截圖如下:

5.如果使用sum方法查詢則(當資料一條都不存在的時候查詢出來的結果是null)

select mc,sum(case

when xh='大號

'then

1end) as

大號,sum(case

when xh='中號

'then

1end) as

中號,sum(case

when xh='小號

'then

1end) as

小號from

當乙個表中需要統計某個欄位中不同型別的資料條數的時候,可以使用該方法。

mysql如何分類統計數量

比如我表test裡面有id,mc,xh三個字段 分別是自動編號,鋼材名稱 若干種 鋼材型號 大號,中號,小號 id mc xh 1鋼管 大號 2銅管 大號 3鐵管 小號 4鋁管 中號 5 鋼管 小號 我現在要分別統計出 mc 裡面的各種型號的東西有多少。意思是 我要統計鋼管,銅管,鐵管,鋁管的大,中...

mysql 行轉列分類統計數量

今天遇到的問題,以下流水表,根據請求渠道和交易型別,統計交易的成功 失敗和處理中筆數 資料庫表 交易流水表 簡化 流水號請求渠道 狀態 00 成功 01 失敗 02 處理中 交易型別 n0001 0100 a0n0002 0200 a1n0003 0101 a1n0004 0200 a0n0005 ...

MySql中按周 月統計數量

經需求要求對某個表進行按每週 每月統計報表顯示,以下為sql 1 按周統計資料 select date format createdate,y u as week,date format date sub createdate,interval dayofweek createdate 2 day ...