मैं एक SQL क्वेरी के साथ संघर्ष कर रहा हूँ।
मैं जो कार्य पूरा करना चाहता हूं वह यह गिनना है कि कितने उपयोगकर्ताओं ने 5 दिनों में ऐप का उपयोग किया, कितने उपयोगकर्ताओं ने 4 दिन आदि।
मुझे इस तरह की एक टेबल चाहिए:
days | user_count
---- | ---
5 | 2
4 | 2
2 | 1
1 | 1
मेरे पास ईवेंट, event_date और user_id के साथ लॉगफाइल है। तो मैं जो पूछने में कामयाब रहा वह यह था:
SELECT
user_id,
COUNT(DISTINCT event_date) AS days
FROM
mytable
GROUP BY user_id
यह परिणामी तालिका है।
user_id | days
------- | ----
a | 5
b | 5
c | 4
d | 4
e | 2
f | 1
लेकिन मुझे ऊपर दिखाए गए तालिका की आवश्यकता है (दिन, user_count)
प्रश्न: मैं एक क्वेरी के साथ परिणाम कैसे प्राप्त कर सकता हूं?
काश मैं परिणाम लेता और इसे दिनों के अनुसार फिर से समूहित करता। लेकिन यह एक प्रश्न में काम नहीं करता है (कारण मैं संचित कॉलम के साथ ORDER BY का उपयोग नहीं कर सकता)।
मैं Google BigQuery के WebUI का उपयोग कर रहा हूं और ऐसा लगता है कि अस्थायी तालिकाओं को करना आसान नहीं है। तो मैं दो प्रश्नों के संयोजन के बारे में सोच रहा था लेकिन एसक्यूएल में मेरे कौशल सीमित हैं। UNION, WHERE IN या उपश्रेणियों के बारे में पढ़ना, सहसंबद्ध प्रश्नों ने मुझे और आगे नहीं लाया।
किसी भी मदद की सराहना की जाती है :-)
3 जवाब
प्रश्नों को घोंसला बनाना एक आसान तरीका होगा। (मेमोरी टेबल या इनलाइन व्यू बनाना, हालांकि आप इसे देखना चाहते हैं)
SELECT count(User_ID) cnt, days
FROM (SELECT user_id
, COUNT(DISTINCT event_date) AS days
FROM mytable
GROUP BY user_id) z
GROUP BY days
ORDER BY Days Desc
संदर्भ: क्या BigQuery SubQueries का समर्थन करता है?
मैं यह देखना चाहता हूं कि विश्लेषणात्मक कार्य या दो के साथ ऐसा करने का कोई तरीका है लेकिन अभी तक कोई भाग्य नहीं है।
दिनों का चयन करें, mytable समूह से दिनों के अनुसार user_count के रूप में गिनें (अलग (उपयोगकर्ता));
तालिका समूह@100 बटा 1 से दिनों का चयन करें, सटीक_काउंट_डिस्टिंक्ट (उपयोगकर्ता) उपयोगकर्ता_काउंट के रूप में;
संबंधित सवाल
नए सवाल
sql
संरचित क्वेरी भाषा (एसक्यूएल) डेटाबेस को क्वेरी करने के लिए एक भाषा है। प्रश्नों में कोड उदाहरण, तालिका संरचना, नमूना डेटा और DBMS कार्यान्वयन के लिए एक टैग (जैसे MySQL, PostgreSQL, Oracle, MS SQL Server, IBM DB2, आदि) का उपयोग किया जाना चाहिए। यदि आपका प्रश्न केवल एक विशिष्ट DBMS (विशिष्ट एक्सटेंशन / सुविधाओं का उपयोग करता है) से संबंधित है, तो इसके बजाय उस DBMS के टैग का उपयोग करें। एसक्यूएल के साथ टैग किए गए सवालों के जवाब में आईएसओ / आईईसी मानक एसक्यूएल का उपयोग करना चाहिए।