मैं mysql उपयोगकर्ता हूं, मेरे पास इस तरह का डेटा स्रोत है

User_id     | Order_id    | Status_id | createdAt  | Transaction_Amount

उपयोगकर्ता के रूप में user_id, ऑर्डर की आईडी के रूप में order_id, प्रत्येक ऑर्डर की स्थिति के रूप में status_id, लेन-देन की तारीख के रूप में बनाया गया।

MySQL में, मैं उपयोगकर्ताओं की स्थिति को 4 स्थितियों में विभाजित करता हूं।

शर्तें 1 new_user

the user who doing FIRST transaction in date range, and not doing transaction before the date range

शर्तें 2 दोहराना_उपयोगकर्ता

the user who doing transaction before the end of date range, and doing atleast 1 more transactions in date range

शर्तें 3 मौजूदा_उपयोगकर्ता

the user who doing his first transaction before the date range, and doing atleast 1 more transactions in date range 

शर्तें 4 अद्वितीय_उपयोगकर्ता

the user who doing transaction in date range

मैंने इसे MySQL में प्रश्नों के साथ किया है, लेकिन मैं इसे झुकाव में देखना चाहता हूं, मैं पहले से ही समय सीमा का फ़िल्टर बना चुका हूं, लेकिन शर्त उपयोगकर्ता के आधार पर शर्तों को कैसे बनाया जाए

0
18Man 5 नवम्बर 2020, 07:39

2 जवाब

सबसे बढ़िया उत्तर

यह मानते हुए कि आप इन स्थितियों को झांकी में बनाना चाहते हैं, मैं इस तरह का एक समाधान प्रस्तावित करता हूं। चूंकि आपने काम करने के लिए कोई डेटा प्रदान नहीं किया है, इसलिए मैंने एक्सेल में उपयोग किया जाने वाला डेटा इस प्रकार है

enter image description here

देखें-1 परिकलित फ़ील्ड (CF) First Transaction of User के रूप में जोड़ें

{FIXED [user_id]: MIN([CreatedAt])}

इस फ़ील्ड को बनाने के बजाय फ़िल्टर पर खींचें और आपको अपने condition_1 के आधार पर एक दृश्य मिलेगा। स्क्रीनशॉट

enter image description here

देखें-2 (मैं मान रहा हूं कि दोनों लेन-देन फ़िल्टर की गई तिथि सीमा के भीतर पूरे हो गए होंगे। यदि आपको अन्यथा चाहिए तो कृपया निर्दिष्ट करें)।

  • चरण 1। user_id को पंक्तियों में खींचें, फ़िल्टर पर बनाया गया (तिथियों की श्रेणी का चयन करें)।
  • चरण -2 फ़िल्टर करने के लिए ऑर्डर_आईडी को फिर से खींचें, गिनती अलग चुनें, कम से कम 2 चुनें

ऐसा नजारा देखने को मिलेगा

enter image description here

देखें-3 इस रूप में दो CF जोड़ें। पहले condition 1 के रूप में

Min([First Transaction of User])< min([CreatedAt])

एक और CF condition 3 check2 as

{Fixed [user_id]: COUNTD([order_id])}>1

इन दोनों CF को createAt के साथ फ़िल्टर शेल्फ़ पर जोड़ें। संदर्भ में condition-1 check2 जोड़ें (महत्वपूर्ण चरण) दोनों फ़िल्टर से TRUE चुनें और आप वांछित दृश्य प्राप्त करेंगे। इस तरह

enter image description here

देखें-4 यह झांकी का सबसे बुनियादी चार्ट है। कोशिश करो और मुझे यकीन है कि आप इसे कर सकते हैं। आपको कामयाबी मिले

1
AnilGoyal 5 नवम्बर 2020, 12:03

आपकी कार्यपुस्तिका से यह स्पष्ट है कि आप कोहोर्ट विश्लेषण चाहते हैं। इस संबंध में कुछ बातें समझाता हूं..

पहले इस तरह एक user cohort बनाएं

{FIXED [user_id]: MIN([CreatedAt])}

इस फ़ील्ड का आउटपुट वह दिनांक होगा जब उपयोगकर्ता ने पहली बार आदेश दिया था। इसलिए यदि आप इस फ़ील्ड को फ़िल्टर करने के लिए जोड़ेंगे तो आउटपुट वे उपयोगकर्ता होंगे (दृश्य में जोड़े गए) जिन्होंने पहले फ़िल्टर की गई तिथि/सीमा के भीतर आदेश दिया था।

अब यदि आप उसी अवधि (शर्त 1) के दौरान उपयोगकर्ताओं के आदेश देखना चाहते हैं, तो उसी दिनांक/सीमा वाले फ़िल्टर में createAt फ़ील्ड भी जोड़ें। जैसे मान लीजिए कि आपकी तिथि सीमा 5 जनवरी से 15 जनवरी है। फिर दोनों फ़िल्टर को इन दिनांक सीमा पर सेट करें। पहला फ़िल्टर ग्राहक को उनके पहले लेनदेन के साथ फ़िल्टर करना सुनिश्चित करेगा और दूसरा आपको वांछित आउटपुट देगा।

कंडीशन 2 के लिए, आपको फ़िल्टर मान सेट 'कम से कम 2' वाले फ़िल्टर में गिनती (order_ids) जोड़ना होगा।
जैसे इस फ़िल्टर को सेट करने से यह सुनिश्चित हो जाएगा कि ग्राहक ने दिनांक सीमा के दौरान अपना पहला और कम से कम एक और लेन-देन किया है।

कंडीशन 3 के लिए, तदनुसार फ़िल्टर में तिथियां बदलने से काम चलेगा। अतिरिक्त कुछ नहीं करना है।
जैसे मान लीजिए कि आप चाहते हैं कि ग्राहक 5 जनवरी से 15 जनवरी के बीच दूसरे और आगे के लेनदेन वाले हों। फिर आपको 4 जनवरी तक की तारीख के साथ पहला कोहोर्ट फ़िल्टर सेट करना होगा लेकिन दूसरी तारीख फ़िल्टर 5 जनवरी से 15 जनवरी तक सेट करना होगा

शर्त 4: सहगण को फ़िल्टर से निकालें. दिनांक सीमा केवल createAt फ़ील्ड पर सेट करें।

यदि आप स्थिति आदि जैसे अन्य फ़िल्टर जोड़ना चाहते हैं, तो ये आपके द्वारा फ़िल्टर में जोड़ने के बाद काम करेंगे।

ये कोशिश करें

1
AnilGoyal 6 नवम्बर 2020, 09:05