2017-09-05 37 views
0

我有兩個字段在表manager_id和on_behalf_manager_id實際上填寫此表單時,或者插入表中其中一個將被填充,另一個將爲0.現在我需要計數其中兩個經理標識或on_behalf_manager_id是相同的,該表的結構如下:選擇基於1字段或另一個計數 - 條件計數

Table : Feedbacks 
id manager_id  on_behalf_manager_id score created  status 
1  2    0      20  2017-08-17 1 
2  2    0      21  2017-08-18 1 
3  0    2      20  2017-08-17 1 
4  1    0      10  2017-08-17 1 
5  2    0      17  2017-08-17 1 
6  0    1      20  2017-08-17 1 
7  0    2      18  2017-08-17 1 

所以我的最終結果,同時實施了數應

manag_id   count 
1     2 
2     5 

我也讀了不少,但找不到確切的解決方案。我想到的唯一解決方案是內部查詢。這會增加我的知識,並且會達到我的目的。非常感謝幫助。

+0

你試過查詢了嗎? –

+0

這2個和5個計數是基於什麼? –

+0

爲什麼經理'0'不出現在您的預期輸出中? –

回答

1

我不是100%肯定這是否符合您的需要,但也許這將引導您到正確的方向:

SELECT 
    CASE 
WHEN manager_id = 0 THEN 
    on_behalf_manager_id 
ELSE 
    manager_id 
END AS manag_id, 
count(
    CASE 
    WHEN manager_id = 0 THEN 
     on_behalf_manager_id 
    ELSE 
     manager_id 
    END 
) AS count 
FROM 
    feedback 
GROUP BY 
    CASE 
WHEN manager_id = 0 THEN 
    on_behalf_manager_id 
ELSE 
    manager_id 
END 
+0

完美按預期工作!謝謝@dns_nx –