編碼的世界 / 優質文選 / 歷史

mysql分組統計占比/百分比


2022年7月31日
-   

需求:統計當前數據庫user_tasks表中,不同status字段值對應的記錄條數及占比
sql語句:
SELECT
`status`,
number,
concat(round(number / total * 100.00, 2), '%') percent
FROM
(
SELECT
*
FROM
(
SELECT
`status`,
COUNT(1) number
FROM
`user_tasks`
GROUP BY
`status`
) t1
INNER JOIN(
SELECT
COUNT(1) total
FROM
`user_tasks`
) t2 ON 1 = 1
) t

解析:
concat函數:
  • 功能:字符串拼接
  • 語法:concat(str1,str2),返回結果為連接參數產生的字符串,如果有任何一個參數為null,則返回值為null。
  • 示例:SELECT CONCAT('hello','world')

  • round()函數:
  • 功能:對數據進行四舍五入
  • 語法:round(x,d):x為需處理的數據,d為小數點後需保留的位數,可以為正數,也可以是負數(表示小數點前需為0的位數)
  • 示例:


  •  

    熱門文章