Oracle
 sql >> Baza danych >  >> RDS >> Oracle

pobierz wynik z zapytania

Możesz użyć SUM/CASE lub (SUM/DECODE jeśli wolisz)

Select
   COUNT(*) TOTAL_RECORDS  ,
   SUM(case when status = 'PENDING' then 1 else 0 END) TOTAL_PENDING, 
   SUM(case when status = 'NOT_REQUIRED' then 1 else 0 END) TOTAL_NOT_REQUIRED, 
   SUM(case when status = 'ERROR' then 1 else 0 END) TOTAL_ERROR


FROM temp25

Zobacz, jak działa tutaj

Możesz także użyć pivota, ale uzyskanie count(*) jest trochę brzydkie

WITH 
COUNTS AS(
select * 
from (
   select status
   from TEMP25 t
)
pivot 
(
   count(status)
   for status in ('PENDING' AS TOTAL_PENDING,
                  'NOT_REQUIRED' AS TOTAL_NOT_REQUIRED,
                  'ERROR' AS TOTAL_ERROR)
))


SELECT COUNT(*) total_records, 
       total_pending, 
       total_not_required, 
       total_error 
FROM   temp25, 
       counts 
GROUP  BY total_pending, 
          total_not_required, 
          total_error 

Wersja przestawna



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Potrzebujesz pomocy w zrozumieniu zachowania SELECT ... FOR UPDATE powodującego zakleszczenie

  2. Dzielenie ciągu oddzielonego przecinkami w przechowywanej procedurze PL/SQL

  3. Dynamicznie wyszukuj nazwy kolumn dla tabeli w zapytaniu sql

  4. <SQL>Jak zmienić rozmiar VARCHAR2 tabeli

  5. Count (*) nie działa poprawnie