डेटाबेस में एकाधिक प्रविष्टि खोजें

मुझे एक MySQL क्वेरी चाहिए जो डेटाबेस में एकाधिक प्रविष्टि खोजें।

उदाहरण के लिए:

**Username    Access_point  Mac_address            Authdate**

 ALAIN          AP01       00:00:00:00:00    2013-11-22 05:00:01
 ALAIN          AP01       00:00:00:00:00    2013-11-22 04:59:10
 ALAIN          AP02       00:00:00:00:00    2013-11-22 04:59:01
 ALAIN          AP01       00:00:00:00:00    2013-11-22 04:58:50
 ALAIN          AP03       00:00:00:00:00    2013-11-22 04:57:55
 ALAIN          AP01       00:00:00:00:00    2013-11-22 04:50:01
 ALAIN          AP02       00:00:00:00:00    2013-11-22 03:00:01

मुझे एक प्रश्न चाहिए जो मुझे एक ही पंक्ति (ऑथडेट को छोड़कर) सूचीबद्ध करे और इसे एक समूह के साथ वापस उपयोगकर्ता नाम पर वापस देखे, यह देखने के लिए कि पिछले सप्ताह एएल 01 पर अलाइन कनेक्ट किया गया था।

मुझे नहीं पता कि यह आपके लिए स्पष्ट है या नहीं ???

मैंने इस तरह कोशिश की थी:

SELECT COUNT(username), username, (access_point), access-point, (mac_address), mac_address 
FROM table 
HAVING COUNT(username) > 1 
AND COUNT(access_point)> 1 
AND COUNT(mac_address) > 1
GROUP BY username

आपकी सहायता के लिए धन्यवाद.

0
प्राथमिक कुंजी आईडी और mac_address है
जोड़ा लेखक cmiscloni, स्रोत
मैं नहीं जानना चाहता कि कितना समय, लेकिन कितनी बार। तो मेरे उदाहरण में, क्वेरी के लिए एक गिनती (4) -> अलाइन एपी 01 आदि वापस करनी है ....
जोड़ा लेखक cmiscloni, स्रोत
इस तालिका के लिए प्राथमिक कुंजी क्या है?
जोड़ा लेखक Sorter, स्रोत
तालिका केवल जब अलाइन अधिकृत (ऑथडेट कॉलम में) - आपके द्वारा पोस्ट किए गए फ़ील्ड से मुझे नहीं लगता कि हम सटीक रूप से कह सकते हैं कि कितना लंबा अलाइन कनेक्ट किया गया था। क्या कोई अन्य कॉलम हैं?
जोड़ा लेखक madebydavid, स्रोत
क्या आप केवल अंतिम घंटे में कनेक्शन की संख्या चाहते हैं? मैंने ऐसा करने के लिए कुछ कोड शामिल किया था, लेकिन ऊपर दिया गया डेटा काफी पुराना है, इसलिए यदि आप इसके खिलाफ अपना कोड चलाते हैं तो यह कुछ भी वापस नहीं कर सकता है। उम्मीद है कि ठीक है, मुझे बताएं अगर नहीं और मैं समायोजित कर सकता हूं।
जोड़ा लेखक madebydavid, स्रोत

1 उत्तर

यदि आप पिछले घंटे के सभी एक्सेस पॉइंट्स पर सभी उपयोगकर्ताओं के लिए कनेक्शन की संख्या गिनना चाहते हैं, तो आप इस क्वेरी का उपयोग कर सकते हैं:

SELECT 
    COUNT(*) AS NumberOfConnections, Username, Access_Point
FROM
    table
WHERE
    Authdate > DATE_SUB(Authdate, INTERVAL 1 HOUR)
GROUP BY
    Username, Access_Point;

यदि आपको एपी 01 पर अलाइन के लिए केवल डेटा की आवश्यकता है तो यह होगा:

SELECT 
    COUNT(*) AS NumberOfConnections, Username, Access_Point
FROM
    table
WHERE
    Authdate > DATE_SUB(Authdate, INTERVAL 1 HOUR)
AND
    Username = 'ALAIN'
AND
    Access_Point = 'AP01'
GROUP BY
    Username, Access_Point;
0
जोड़ा