मैं एक मेज है कि कुछ इस तरह दिखता है के मूल्य के आधार का चुनाव कैसे करें:MySQL - एक और चयन
Name Year Value
A 2000 5
A 2001 3
A 2002 7
A 2003 1
B 2000 6
B 2001 1
B 2002 8
B 2003 2
उपयोगकर्ता वर्षों की सीमा के आधार पर क्वेरी कर सकता है, और यह मूल्य की राशि वापस आ जाएगी नाम के आधार पर वर्गीकृत, जैसे (मान पूछे वर्ष 2000 कर रहे हैं - 2001):
Name SUM(Value)
A 8
B 7
अब, मैं परिकलित क्षेत्र है कि करने के लिए सभी वर्षों के लिए एक नाम के मानों का योग के अनुपात आउटपुट सम्मिलित करना चाहता था सभी मूल्यों का योग। मूल रूप से ए और बी, के लिए जिम्मेदार ठहराया सभी मूल्यों का प्रतिशत क्रमश: जैसे:
Name SUM(Value) % Of Total
A 8 0.484 (16/33)
B 7 0.516 (17/33)
ध्यान दें कि भले ही उपयोगकर्ता केवल 2000-2001 पूछे, मैं गणना सभी वर्षों भर में योग का उपयोग करना चाहते। मैं घंटों के लिए खोज और प्रयोग कर रहा हूं और मैं यह नहीं समझ सकता कि कैसे। मैं केवल पता तो जैसे पूछे साल भर में योग करने के लिए कैसे:
SELECT `Name`, SUM(`Value`)/(SELECT SUM(`Value`) FROM `table1`) AS "% of Total"
FROM `table1`
WHERE `Year` BETWEEN 2000 AND 2001
GROUP BY `Name`;
कृपया मदद! मैं बहुत नौसिखिया हूं, और एसक्यूएल को बहुत गहराई से समझ नहीं पा रहा हूं, इसलिए कृपया किसी भी उन्नत कोड को स्पष्ट करें। आपकी दयालुता के लिए धन्यवाद।
के लिए सिर्फ एक उपनाम है जो एक आकर्षण की तरह समझने और काम करने के लिए सबसे आसान है। आपको बहुत - बहुत धन्यवाद! – John