今天突然收到上級的命令,要求統計接口的成功率。計算某段時間成功和失敗比例。由於上級並非程序員,所以得統計出他們可以識別得表單。
修改之前:
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`