利用 CONCAT() 拼接字串,LEFT() 截取定長,直接在 SQL 輸出「12.34%」格式。
CONCAT(str1, str2, ...):任一參數為 NULL → 結果 NULLLEFT(str, len):從左側截取 len 個字元SELECT
category,
cnt,
total,
CONCAT(LEFT(cnt / total * 100, 5), '%') AS pct
FROM (
SELECT category, COUNT(*) AS cnt, (SELECT COUNT(*) FROM t) AS total
FROM t GROUP BY category
) x;
CONCAT(ROUND(cnt / total * 100, 2), '%') AS pct
-- 12.30%、8.70%、20.00%
1.0 或 CAST(cnt AS DECIMAL(10,4))NULLIF(total, 0) 或 CASE WHEN total=0 THEN '0%' ELSE ... ENDCOALESCE(cnt,0), COALESCE(total,1)