Mysql case when else 簡單使用

今天突然收到上級的命令,要求統計接口的成功率。計算某段時間成功和失敗比例。由於上級並非程序員,所以得統計出他們可以識別得表單。

修改之前:

SELECT
	`status`,
	count(*) AS '次數' 
FROM
	sys_task_log 
WHERE
	task_id = '56' 
	AND DATE_FORMAT( createTime, '%y%m%d' ) >= DATE_FORMAT( '2019-12-15', '%y%m%d' ) 
	AND DATE_FORMAT( createTime, '%y%m%d' ) <= DATE_FORMAT( '2019-12-16', '%y%m%d' ) 
GROUP BY
	`status`;

爲了在結果集顯示0,1 分別是什麼意思,我就使用mysql 的case語句來判斷每條記錄值,若記錄爲1,表示成功;否則失敗。SQL如下:

SELECT
CASE
		`status` 
		WHEN 1 THEN '成功'
		ELSE '失敗' 
	END '狀態',
	count(*) AS '次數' 
FROM
	sys_task_log 
WHERE
	task_id = '56' 
	AND DATE_FORMAT( createTime, '%y%m%d' ) >= DATE_FORMAT( '2019-12-15', '%y%m%d' ) 
	AND DATE_FORMAT( createTime, '%y%m%d' ) <= DATE_FORMAT( '2019-12-16', '%y%m%d' ) 
GROUP BY
	`status`

 

 

發佈了65 篇原創文章 · 獲贊 30 · 訪問量 20萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章