Как мне показать процент таблиц без комментариев? - PullRequest
0 голосов
/ 11 декабря 2018

Я написал запрос

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_all.table_comment' в 'списке полей'

Это потому, что область действия псевдонима c_all не является глобальной, просто внутри ().

Как правильно переписать запрос?

Ответы [ 3 ]

0 голосов
/ 11 декабря 2018

Это должно решить вашу проблему:

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

Возвращает процент непустых комментариев.

0 голосов
/ 11 декабря 2018

И еще один способ - полагаться на врожденную способность count () не считать NULLS;и просто замените '' на ноль ...

Демо

SELECT count(case when table_Comment = '' then null else table_Comment end) /
       count(table_Comment) as PercentEmpty
FROM INFORMATION_SCHEMA.TABLES;
0 голосов
/ 11 декабря 2018

Вы можете попробовать это:

SELECT COUNT(CASE WHEN table_comment <> '' THEN 1 END)/count(1) 
total_comments_percentage 
FROM INFORMATION_SCHEMA.TABLES;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...