Mysql——查詢同一張表中各個狀態類型的數據統計

一、表中數據

在這裏插入圖片描述

需要計算出:
數據表中設備總數激活/未激活數開啓/關閉數在線/離線數有效/無效數

二、如何處理

大部分時候,可能採取分sql的形式進行操作,然後將數據整合。

但如果想把所有查詢計算邏輯存於一個sql中操作並輸出,如何進行操作?

此處需要借用 mysql 自帶的 case when then函數。

SELECT 
	COUNT(*) as totalCount,
	SUM(CASE is_active WHEN 1 THEN 1 ELSE 0 END ) as activeCount ,
	SUM(CASE is_active WHEN 0 THEN 1 ELSE 0 END ) as noActiveCount,
	SUM(CASE is_online WHEN 1 THEN 1 ELSE 0 END ) as onlineCount,
	SUM(CASE is_online WHEN 0 THEN 1 ELSE 0 END ) as noOnlineCount,
	SUM(CASE open_status WHEN 1 THEN 1 ELSE 0 END ) as closeSwitchCount,
	SUM(CASE open_status WHEN 0 THEN 1 ELSE 0 END ) as openSwitchCount
FROM switch_list ;

在這裏插入圖片描述

其實,case還有另外的寫法,增加條件判斷

SELECT 
	COUNT(*) as totalCount,
	SUM(CASE WHEN is_active=1 THEN 1 ELSE 0 END ) as activeCount 
FROM switch_list ;

在這裏插入圖片描述

三、參考資料

mysql 查詢一張表中某個字段不同狀態的數量,用於表格統計

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章