如何显示没有注解的表的百分比?

tp5buhyn  于 2021-06-17  发布在  Mysql
关注(0)|答案(3)|浏览(284)

我写了一个查询

SELECT COUNT(c_all.table_comment) / COUNT(c_target.table_comment)
FROM (
    SELECT table_comment
    FROM (
        SELECT table_comment
        FROM INFORMATION_SCHEMA.TABLES
        ) AS c_all
    WHERE table_comment <> ''
    ) AS c_target;

但它给了我错误
错误代码:1054。“字段列表”中的未知列“c\u all.table\u comment”
这是因为 c_all 别名不是全局的,只是在内部 () .
如何正确重写查询?

am46iovg

am46iovg1#

另一种方法是依靠count()的固有能力不计算空值;只需将“”替换为null。。。
演示

SELECT count(case when table_Comment = '' then null else table_Comment end) /
       count(table_Comment) as PercentEmpty
FROM INFORMATION_SCHEMA.TABLES;
uubf1zoe

uubf1zoe2#

这将解决您的问题:

select sum(case when table_comment <> '' then 1 else 0 end) / count(*)
from INFORMATION_SCHEMA.TABLES

它将返回非空注解的百分比。

enxuqcxy

enxuqcxy3#

你可以试试这个:

SELECT COUNT(CASE WHEN table_comment <> '' THEN 1 END)/count(1) 
total_comments_percentage 
FROM INFORMATION_SCHEMA.TABLES;

相关问题