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

Wybierz dwie kolumny z tej samej tabeli z różnymi warunkami WHERE

Szukasz przefiltrowanego agregatu:

SELECT COUNT(DISTINCT 
             case when 
                MODIFIED_DATE BETWEEN TO_DATE('{RUN_DATE_YYYYMMDD}','YYYYMMDD') - 56 
                                  AND TO_DATE('{RUN_DATE_YYYYMMDD}','YYYYMMDD') - 49
               then CASE_ID 
             end) as c1,
        COUNT(DISTINCT 
               case when 
                  MODIFIED_DATE BETWEEN TO_DATE('{RUN_DATE_YYYYMMDD}','YYYYMMDD')-49  
                                    AND TO_DATE('{RUN_DATE_YYYYMMDD}','YYYYMMDD')-42 
                  then CASE_ID 
               end) as c2
from t1 
WHERE MODIFIED_DATE 
         BETWEEN TO_DATE('{RUN_DATE_YYYYMMDD}','YYYYMMDD') - 56 
             AND TO_DATE('{RUN_DATE_YYYYMMDD}','YYYYMMDD') - 42 

Zauważ, że WHERE klauzula musi teraz obejmować oba przedziały.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak zainstalować Oracle Instant Client na komputerze Mac?

  2. liczyć z dołącz

  3. Jak uzyskać ciąg znaków po wyroczni znaków?

  4. Jak mogę wykonać SELECT DISTINCT na wszystkich polach z wyjątkiem BLOB?

  5. Długość przechowywania BLOB w Oracle