如何获取特定列中非NULL的行百分比?

时间:2017-04-04 16:00:47

标签: mysql sql

我有这样的数据库设置:

表格reviews

+ -------- +
|  review  |
+ -------- +
|   awda   |
|   ggagw  |
|   okok   |
|   ligjr  |
|   kkfm   |
|   seff   |
|   oawr   |
|   abke   |
|  (null)  |
|  (null)  |
|  (null)  |
|  (null)  |
|  (null)  |
|  (null)  |
|  (null)  |
+ -------- +

如何获得有多少行的百分比,哪些是非空

我想要的基本“公式”:

percentage = 100 *((review不为空的行数之和)/(行数))

对于上面的示例,这将是: 百分比= 100 *((8)/(15))            = 53.33333333

如何只使用一个MySQL查询来实现这一目标?

1 个答案:

答案 0 :(得分:2)

我认为最简单的方法是:

select avg( review is not null ) * 100
from reviews;

MySQL将布尔表达式视为数字上下文中的数字,0表示false,1表示true。

类似的方法做了明确的划分:

select 100*count(review) / count(*)
from reviews;