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