2014-01-10 5 views
1

Вот мой запросдисплей значение строки в столбце после grouping- Oracle

SELECT 
    tbl_dtl_feature.customer_id, 
    result, 
    COUNT(*) AS expr1 
FROM tbl_dtl_feature 
WHERE tbl_dtl_feature.feature_id = 'F001' 
     AND TRUNC(tbl_dtl_feature.start_datetime) 
     BETWEEN TO_DATE('10/01/2014', 'DD/MM/YYYY') AND TO_DATE('10/01/2014', 'DD/MM/YYYY') 
GROUP BY tbl_dtl_feature.result, tbl_dtl_feature.customer_id 

Мой набор Результат:

CustomerID Result Count 
---------- ------- ----- 
44438111 Success 3 
44438444 Success 1 
44438111 Failure 1 

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

CustomerID Count(Success) Count(Failure) 
---------- -------------- ------------- 
44438111  3    1 
44438444  1    0 

Можете ли вы помочь мне ?

ответ

2

Попробуйте, как это,

SELECT t.customer_id, 
     count(CASE WHEN result = 'Success' THEN 1 END) Count_Success, 
     count(CASE WHEN result = 'Failure' THEN 1 END) Count_Failure 
FROM tbl_dtl_feature t 
WHERE t.feature_id = 'F001' 
AND trunc(t.start_datetime) BETWEEN to_date('10/01/2014', 'DD/MM/YYYY') AND to_date('10/01/2014', 'DD/MM/YYYY') 
GROUP BY t.customer_id; 
+0

BullsEye: D..Perfection к core.Thats то, что мне нужно !!!. Спасибо большое Дба. – Bharath

Смежные вопросы