नीचे BigQuery के लिए है!
कृपया ध्यान दें:आउटपुट कॉलम नामों के बारे में आपकी अपेक्षाएं सही नहीं हैं!
कॉलम का नाम अंकों से शुरू नहीं हो सकता है - इसलिए नीचे दिए गए उदाहरण में - मैं 1, 2 और 3 के बजाय id_1, id_2 और id_3 का उपयोग करूंगा
SELECT
SUM(CASE WHEN id = 1 THEN 1 END) AS id_1,
SUM(CASE WHEN id = 2 THEN 1 END) AS id_2,
SUM(CASE WHEN id = 3 THEN 1 END) AS id_3
FROM YourTable
उपरोक्त उदाहरण मानता है कि आप अपनी आईडी पहले से जानते हैं और उनमें से बहुत कम हैं इसलिए प्रत्येक आईडी के लिए एसयूएम (...) के साथ मैन्युअल रूप से कुछ पंक्तियों को मैन्युअल रूप से लिखना कोई बड़ी बात नहीं है
यदि यह मामला नहीं है - तो आप नीचे क्वेरी चलाकर पहले उपरोक्त क्वेरी को प्रोग्रामेटिक रूप से उत्पन्न कर सकते हैं
SELECT 'SELECT ' +
GROUP_CONCAT_UNQUOTED(
'SUM(CASE WHEN id = ' + STRING(id) + ' THEN 1 END) AS id_' + STRING(id)
)
+ ' FROM YourTable'
FROM (
SELECT id FROM (
SELECT * FROM YourTable GROUP BY id ORDER BY id
)
परिणामस्वरूप - आपको नीचे की तरह स्ट्रिंग मिलेगी
SELECT SUM(CASE WHEN id = 1 THEN 1 END) AS id_1,SUM(CASE WHEN id = 2 THEN 1 END) AS id_2,SUM(CASE WHEN id = 3 THEN 1 END) AS id_3 FROM YourTable
तो, अब बस इसे कॉपी करें और क्वेरी एडिटर में पेस्ट करें और इसे चलाएं
आप इसी तरह का उदाहरण यहां देख सकते हैं - https://stackoverflow.com/a/36623258/5221944