sql - How to Sum Columns From Two Result Sets in MySQL -


मेरे पास निम्न तालिका है:

रेटिंग:

  आईडी | पोस्ट_आईडी | रेटिंग_प्रकार  

रेटिंग_प्रकार फ़ील्ड या तो 'अंगूठे-अप' या 'थंब-डाउन' है मुझे उच्चतम दर्जा वाले पदों को बताते हुए मुझे एक परिणाम सेट मिलना है। निम्न क्वेरी से मुझे प्रत्येक अद्वितीय पोस्ट_id के लिए वोटों की संख्या के साथ एक परिणाम सेट मिल जाता है।

  SELECT COUNT (post_id) number_up के रूप में, post_id से wp_sp_post_ratings WHERE रेटिंग_प्रकार = 'अंगूठे-अप' ग्रुप द्वारा पोस्ट_id  

यह महान है! मैं अंगूठे डाउन रेटिंग प्रकार के लिए ऐसा ही कर सकता हूं। हालांकि, मुझे क्या चाहिए, कुल दर्ज़ा प्राप्त करना है, जहां प्रत्येक अंगूठे में पोस्ट एक बिंदु देता है और प्रत्येक अंगूठे नीचे एक नकारात्मक बिंदु देता है फिर, मुझे यह क्रम की रेटिंग की कुल राशि से ऑर्डर करने की ज़रूरत है तो, कहें कि हमारे पास निम्न है:

पोस्ट 1 के पास 3 वोट और 2 वोटों के बाद 2 के पास 14 वोट और 33 वोट नीचे दिए गए हैं। 3 के पास 4 वोट और 0 वोट नीचे हैं

< P> मैं निम्नलिखित की तरह एक परिणाम सेट देखना चाहता हूं:

  पोस्ट_id | कुल_रेटिंग 3 | 4 1 | 1 2 | -19  

मुझे यह नहीं पता कि यह कैसे करना है। मैं लगभग 2 घंटों के लिए प्रलेखन और Google के खिलाफ अपने सिर की पीट कर रहा हूं, इसलिए मैं उम्मीद कर रहा था कि SO मेरा उद्धारकर्ता हो सकता है।

  SELECT SUM (मामले में जब रेटिंग_प्रकार = 'ऊपर' तब 1 होता है जब रेटिंग_प्रकार = 'डाउन' है तो -1 ईडी का मामला) पदों से पोस्ट ग्रुप द्वारा पोस्ट_id  

पी। एस। स्ट्रिंग्स के बजाय संख्याओं (+1 और -1) के रूप में मत रखना और नीचे वोट करना बेहतर है।


Comments