sql >> Databáze >  >> RDS >> Oracle

Vyberte dva sloupce ze stejné tabulky s různými podmínkami WHERE

Hledáte filtrovaný agregát:

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 

Všimněte si, že WHERE doložka nyní musí pokrývat oba intervaly.



  1. Co je index?

  2. Připojení CodeIgniter MSSQL

  3. node-postgres vytvořit databázi

  4. Optimalizujte dotaz pomocí OFFSET na velké tabulce