आप CASE
. का उपयोग करके एकत्र कर सकते हैं अभिव्यक्ति, जो id
. का उपयोग करके एक समूह बनाती है अगर manager_id
शून्य हो, अन्यथा manager_id
. का उपयोग करके . बाकी तर्क वही है जो आपके पास पहले से है।
SELECT
CASE WHEN manager_id = 0 THEN id ELSE manager_id END AS manager_id,
MAX(CASE WHEN is_manager=1 THEN name END) AS name,
SUM(no_of_items) AS total_items,
SUM(revenue) AS total_revenue
FROM items_revenue
GROUP BY
CASE WHEN manager_id = 0 THEN id ELSE manager_id END;
एक तरफ ध्यान दें:मैंने GROUP BY
. में एक फ़ंक्शन का उपयोग किया है क्लॉज, जो एएनएसआई के अनुरूप नहीं है और इसलिए हर जगह नहीं चल सकता है। इसे ठीक करने के लिए, हम प्रभावी प्रबंधक समूह बनाने के लिए पहले आपकी तालिका को सबक्वायरी कर सकते हैं। फिर, इस मध्यवर्ती परिणाम के विरुद्ध मेरे उपरोक्त उत्तर का उपयोग करें।