Как я могу создать выборку, которая может показывать общее количество объектов по владельцам? - PullRequest
0 голосов
/ 23 февраля 2019

Я инициирую на SQL, и у меня есть это предложение:

select owner, object_name, object_id, object_type, status, last_ddl_time 
from dba_objects;

Это покажет мне все объекты, но я хочу что-то вроде:

  • БЕЗОПАСНОСТЬ пользователя
  • Таблицы: #
  • Просмотры: #
  • Триггеры: #
  • Недопустимые триггеры: #

Спасибо.

1 Ответ

0 голосов
/ 23 февраля 2019

Использовать условную агрегацию:

SELECT
    owner,
    SUM(DECODE(object_type, 'TABLE', 1, 0)) "Tables #",
    SUM(DECODE(object_type, 'VIEW', 1, 0)) "View #",
    SUM(DECODE(object_type, 'TRIGGER', 1, 0)) "Triggers #",
    SUM(CASE WHEN object_type = 'TRIGGER' AND status = 'INVALID' THEN 1 ELSE 0 END) "Invalid Triggers #"
FROM dba_objects
GROUP BY owner
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...