2017-09-05 4 views
0

テーブルmanager_idとon_behalf_manager_idに2つのフィールドがあり、実際にはこのフォームを入力するか、テーブルを挿入すると1つは塗りつぶされ、もう1つは0になります。回数を実装する私は多くのことを読んでいる1フィールドまたは他のフィールドに基づくカウントの選択 - 条件付きカウント

manag_id   count 
1     2 
2     5 

する必要がありながら、

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 

だから私の最終的な結果:MANAGER_IDまたはon_behalf_manager_id両方が同じ数、テーブルの構造は以下の通りですが必要正確な解決策を見つけることができませんでした。私の心に来る唯一の解決策は、内側のクエリです。これは私の知識を向上させ、私の目的にも役立ちます。ヘルプは非常に感謝しています。

+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 –

関連する問題