百分比值的计算
Calculation of percentage value
我想通过 sql 计算大于阈值的值的百分比,如 excel(COUNTIF/COUNT)
感谢帮助
您可以使用 avg()
和 case
:
select avg(case when a > 2 then 1.0 else 0 end)
from t;
另一个解决方案没有 AVG(),使用子查询。
运行 在这里:
https://www.db-fiddle.com/f/pm4VyShqzNBMpceCzgzniZ/7
SELECT NumberOfValid,
NumberOfAll,
NumberOfValid/NumberOfAll AS "Ratio of Valid/All"
FROM (SELECT Count(*) AS NumberOfValid
FROM test
WHERE id < 9) AS subquery1,
(SELECT Count(*) AS NumberOfAll
FROM test) AS subquery2;
请注意此解决方案更复杂,但更灵活。 AVG() 将始终除以整个集合的 COUNT(),但是对于子查询,您可以完全控制。在这种情况下,AVG() 是完美的,但在其他情况下,可能需要子查询。
我想通过 sql 计算大于阈值的值的百分比,如 excel(COUNTIF/COUNT)
感谢帮助
您可以使用 avg()
和 case
:
select avg(case when a > 2 then 1.0 else 0 end)
from t;
另一个解决方案没有 AVG(),使用子查询。
运行 在这里: https://www.db-fiddle.com/f/pm4VyShqzNBMpceCzgzniZ/7
SELECT NumberOfValid,
NumberOfAll,
NumberOfValid/NumberOfAll AS "Ratio of Valid/All"
FROM (SELECT Count(*) AS NumberOfValid
FROM test
WHERE id < 9) AS subquery1,
(SELECT Count(*) AS NumberOfAll
FROM test) AS subquery2;
请注意此解决方案更复杂,但更灵活。 AVG() 将始终除以整个集合的 COUNT(),但是对于子查询,您可以完全控制。在这种情况下,AVG() 是完美的,但在其他情况下,可能需要子查询。