Как использовать запрос фильтра в базе данных оракула

Я пишу запрос в Postgres с использованием фильтра в статусе (например, «ВВЕРХ» и «ВНИЗ»), и это работает нормально. Я просто хочу написать тот же запрос в Oracle. У меня есть значения UP и DOWN в одном и том же столбце Status. Я просто хочу подсчитать общее количество статусов Up и Down, а также общее количество результатов Apps. Я хочу, чтобы в этом столбце псевдонима было три значения общего количества: Tot_App_Name, Status_Up_count, Status_down_count. Как мне это сделать?

Стол:-

CREATE TABLE Application_Status
(
   App_Category   VARCHAR (45) NULL,
   App_Name       VARCHAR (40) NULL,
   DB_name        VARCHAR (40) NULL,
   Server         VARCHAR (200) NULL,
   Provider       VARCHAR (250) NULL,
   Status         VARCHAR (10) NULL,
   Last_Refresh   TIMESTAMP NULL
)

Вставленные значения: -

insert into Application_Status values('app1','abc1','abcd1','abcd1','url11','Up',CURRENT_TIMESTAMP);
insert into Application_Status values('app2','abc2','abcd2','abcd2','url12','Up',CURRENT_TIMESTAMP);
insert into Application_Status values('app3','abc3','abcd3','abcd3','url13','down',CURRENT_TIMESTAMP);
insert into Application_Status values('app4','abc4','abcd4','abcd4','url14','down',CURRENT_TIMESTAMP);
insert into Application_Status values('app5','abc5','abcd5','abcd5','url15','Up',CURRENT_TIMESTAMP);

Постгресс-запрос (хотите преобразовать в оракул): -

select count(*) as "Tot_App_Name",count(*) filter (where "Status"= 'UP') as "Status_Up_count",
    count(*) filter (where "Status"= 'DOWN') as "Status_Down_count" from  "ApplicationStatus"."ApplicationStatus";
            Select * from "Application_Status"."Application_Status";

Ожидаемый результат:-

Tot_App_Name     Status_Up_count      Status_Down_count
   5                  3                     2

Должен признаться, я не знаю синтаксиса filter( ... ). В стандартном SQL вы бы сделали это так: SELECT --place the colums you want to select hereFROM -- place the tables hereWHERE -- place the conditions for here; this is the filtering part

Xaver 11.12.2020 14:31
ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
Понимание Python и переход к SQL
Понимание Python и переход к SQL
Перед нами лабораторная работа по BloodOath:
0
1
176
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вот один из вариантов:

select 
  count(*) tot_app_name,
  sum(case when status = 'UP'   then 1 else 0 end) status_up_count,
  sum(case when status = 'DOWN' then 1 else 0 end) status_down_count
from application_status;

Другие вопросы по теме