Mysql SQL中的简单百分比列

Mysql SQL中的简单百分比列,mysql,sql,Mysql,Sql,我对SQL比较陌生,希望学习一些简单的技巧。我已经创建了一个查询,用于选择每种不同类型的汽车许可证(chargeType),统计每种许可证的发放数量(num),并添加一列,显示发放的许可证总数(total)。代码如下 SELECT chargeType, COUNT(chargeType) AS num, (SELECT COUNT(chargeType) FROM permit) AS total FROM permit GROUP BY char

我对SQL比较陌生,希望学习一些简单的技巧。我已经创建了一个查询,用于选择每种不同类型的汽车许可证(chargeType),统计每种许可证的发放数量(num),并添加一列,显示发放的许可证总数(total)。代码如下

SELECT chargeType, 
       COUNT(chargeType) AS num,
       (SELECT COUNT(chargeType) 
       FROM permit) AS total
FROM permit
GROUP BY chargeType

现在我想添加最后一列,显示每种许可类型的百分比。每个许可证类型的数量除以总数乘以100,但我很难做到这一点。有人能帮忙吗?

试试这样的

SELECT chargeType,
       num,
       total,
       num / NULLIF(total, 0) * 100 AS Percenatge
FROM   (SELECT chargeType,
               Count(chargeType) AS num,
               (SELECT Count(chargeType)
                FROM   permit)   AS total
        FROM   permit
        GROUP  BY chargeType) a 

NULLIF
用于避免被零除期望值

这将起作用。此解决方案的优点是在
SELECT

SELECT *, (num * 100 / total) as percentage
FROM 
(
SELECT
 chargeType, 
 COUNT(chargeType) AS num,
 total,
 (num * 100 / total) as percentage
FROM
  (SELECT COUNT(chargeType) as total FROM permit) ttotal
CROSS JOIN
  permit
GROUP BY
 chargeType
) tsub

只需调用它
percentage
并存储一个数值INT值-MYSQL使用
%
作为通配符选择器,所以不要将
%
存储在db中-只存储INT。