sql >> Databasteknik >  >> RDS >> Oracle

Välj två kolumner från samma tabell med olika WHERE-villkor

Du letar efter ett filtrerat aggregat:

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 

Observera att WHERE klausulen behöver nu täcka båda intervallen.



  1. mysql - kolumnen kan inte vara null

  2. Återställ ROOT-lösenord i MySQL 5.6

  3. Hur väljer man rader med kolumnvärde som null?

  4. Hur kan public_dependency innehålla referenser till objekt som inte finns i alla_objekt?