मेरे पास एक दिलचस्प conundrum है जो मुझे विश्वास है कि पूरी तरह से एसक्यूएल में हल किया जा सकता है। मैं करने के लिए इसी तरह की टेबल है निम्नलिखित:एसक्यूएल कॉलम के रूप में पंक्तियों को ट्रांसफर करें
responses:
user_id | question_id | body
----------------------------
1 | 1 | Yes
2 | 1 | Yes
1 | 2 | Yes
2 | 2 | No
1 | 3 | No
2 | 3 | No
questions:
id | body
-------------------------
1 | Do you like apples?
2 | Do you like oranges?
3 | Do you like carrots?
और मैं निम्नलिखित उत्पादन
user_id | Do you like apples? | Do you like oranges? | Do you like carrots?
---------------------------------------------------------------------------
1 | Yes | Yes | No
2 | Yes | No | No
मैं कितने सवाल नहीं होगा पता नहीं है प्राप्त करना चाहते हैं, और वे इतना गतिशील हो जाएगा, मैं सिर्फ हर प्रश्न के लिए कोड नहीं कर सकता। मैं PostgreSQL का उपयोग कर रहा हूं और मुझे विश्वास है कि इसे पारदर्शिता कहा जाता है, लेकिन मुझे ऐसा कुछ भी नहीं लगता है जो SQL में ऐसा करने का मानक तरीका कहता है। मुझे कॉलेज में वापस अपने डेटाबेस वर्ग में ऐसा करना याद है, लेकिन यह MySQL में था और मैं ईमानदारी से याद नहीं करता कि हमने यह कैसे किया।
मुझे लगता है कि यह जुड़ने और GROUP BY
कथन का संयोजन होगा, लेकिन मैं यह भी नहीं समझ सकता कि कैसे शुरू किया जाए।
कोई भी यह कैसे जानता है? बहुत बहुत धन्यवाद!
संपादित करें 1: मुझे crosstab का उपयोग करने के बारे में कुछ जानकारी मिली जो मुझे लगता है कि मुझे लगता है, लेकिन मुझे इसकी समझ में परेशानी हो रही है। बेहतर लेखों के लिए लिंक की सराहना की जाएगी!
तो आप कह रहे हैं कि मेरे पास मेरे प्रश्नों की संख्या के आधार पर गतिशील क्वेरी बनाना है? मुझे लगता है कि मैं ऐसा कर सकता था, लेकिन मैं एक और अधिक सरल समाधान की उम्मीद कर रहा था। –
@ टोफर: ओरेकल और एसक्यूएल सर्वर में 'PIVOT' और' UNPIVOT' है, लेकिन यदि आप पिवोट टैग की जांच करते हैं तो आप देखेंगे कि गतिशील क्वेरी फ़ंक्शन के साथ भी आम हैं। –
उत्तर के लिए धन्यवाद। ऐसा लगता है कि अगर मुझे रनटाइम पर क्वेरी जेनरेट करना है तो भी इसे लागू करना सबसे आसान होगा। –