Wednesday, 15 June 2011

mysql - count the number of rows between intervals -


मेरी टेबल समान है:

  + --------- + --------- + ------------ + ----------------------- + --- ------------------ + | VisitId | UserId | स्थान आईडी | टिप्पणियाँ | समय | + --------- + --------- + ------------ + ---------------- ------- + --------------------- + | 1 | 3 | 12 | यह एक अच्छा दिन है! | 2012-12-12 11:50:12 | + --------- + --------- + ------------ + ---------------- ------- + --------------------- + | 2 | 3 | 23 | बहुत सुंदर | 2012-12-12 12:50:12 | + --------- + --------- + ------------ + ---------------- ------- + --------------------- + | 3 | 3 | 52 | अच्छा | 2012-12-12 13:50:12 | + --------- + --------- + ------------ + ---------------- ------- + --------------------- +   

जो रिकॉर्ड करता है विज़िटर 'प्रक्षेपवक्र और स्थानों पर कुछ टिप्पणियां

मुझे कुछ आगंतुकों की गिनती करना है जो किसी विशिष्ट स्थान पर (0 = 2327) कहते हैं 0:00 से 23:59 तक, कुछ अंतराल पर ( यानी 30 एमिन)

मैं ऐसा करने का प्रयास कर रहा था :

  SELECT COUNT (*) से यात्रा समूह द्वारा घंटे (समय), साइन इन करें (मिनट (समय) - 30) // यदि वे एक ही अंतराल में हैं तो यह एक ही परिणाम देगा WHERE locationId = 3227   

समस्या यह है कि अगर कुछ अंतराल पर गिरने वाला कोई रिकॉर्ड नहीं होता है, तो यह गिनती 0 के साथ वह अंतराल वापस नहीं लौटाएगा। उदाहरण के लिए, 02:00 से 03:00 तक स्थान पर जाने वाले कोई भी आगंतुक नहीं हैं, यह मुझे 02 के अंतराल नहीं देगा: 00-02: 29 और 02: 30-2: 59।

मुझे सटीक आकार के 48 के साथ एक परिणाम चाहिए (प्रत्येक आधे घंटे के लिए), मैं कैसे कर सकता हूं यह?

आपको 48 पंक्तियाँ जो आप चाहते हैं के साथ एक टेबल बनाते हैं और बाएं बाहरी जुड़ने का उपयोग करें:

  select n.hr, n .hr, कोलासेस (v.cnt, 0) से सीएनटी के रूप में (0 के रूप में एचआर चुनें, -1 के रूप में चयन करें संघ सभी संघ चुनें 1, 1 संघ सभी चुनिंदा 1, 1 संघ सभी का चयन 1, 1 संघ सभी। । । चयन 23, 1 संघ सभी का चयन 23, 1 संघ सभी) बाएं बाहरी छोड़ें (घंटा का चयन करें HOUR के रूप में (समय), हस्ताक्षर (मिनट (समय) - 30) हस्ताक्षर के रूप में, COUNT (*) विज़िट्स से सीएनटी के रूप में स्थान स्थान = 3227 ग्रोथ बाय एचओआर (समय), साइन (मिनिट (समय) - 30)) v.h पर n.hr = v.hr और n.sign = v.sign आदेश n.hr, n.hr    

No comments:

Post a Comment