यहाँ एक समाधान है। पहले एक व्युत्पन्न तालिका में सेट को अलग-अलग पंक्तियों में कम करें, फिर उस परिणाम के लिए GROUP BY लागू करें:
SELECT SUM(case when d.status = 2 then d.value end) as 'val_accepted'
FROM (
SELECT DISTINCT p.id, p.status, p.value, pc.library_id
FROM props p
INNER JOIN p_contents AS pc ON p.id = pc.prop_id
INNER JOIN contents AS c ON c.id = pc.library_id
WHERE p.account_id = 3) AS d
GROUP BY d.library_id
आप DISTINCT(pc.library_id)
. का उपयोग करते हैं आपके उदाहरण में, जैसे कि DISTINCT केवल कोष्ठक के अंदर के कॉलम पर लागू होता है। यह एक आम धारणा है। DISTINCT चयन-सूची के सभी स्तंभों पर लागू होता है। DISTINCT एक फ़ंक्शन नहीं है; यह एक क्वेरी संशोधक है।