मैं शीर्ष एन समूहों के रिकॉर्ड का चयन करना चाहता हूं। मेरे डेटा इस तरह दिखता है:एन समूहों के सभी रिकॉर्ड कैसे चुनें?
टेबल 'धावक':
id gid status rtime
---------------------------
100 5550 1 2016-08-19
200 5550 2 2016-08-22
300 5550 1 2016-08-30
100 6050 3 2016-09-01
200 6050 1 2016-09-02
100 6250 1 2016-09-11
200 6250 1 2016-09-15
300 6250 3 2016-09-19
टेबल 'स्थिर'
id description env
-------------------------------
100 something 1 somewhere 1
200 something 2 somewhere 2
300 something 3 somewhere 3
इकाई आईडी (आईडी) अपने कॉलम में समूह के भीतर अद्वितीय लेकिन अद्वितीय नहीं है , क्योंकि समूह का एक उदाहरण नियमित रूप से उत्पन्न होता है। समूह आईडी (गीड) प्रत्येक इकाई को सौंपा गया है लेकिन एक से अधिक उदाहरण उत्पन्न नहीं करेगा।
अब, तालिकाओं को संयोजित करना और किसी विशिष्ट मूल्य से फ़िल्टर करना या फ़िल्टर करना आसान है, लेकिन उदाहरण के लिए, मैं पहले दो समूहों को समूह आईडी के बारे में सीधे प्रतिक्रिया के बिना कैसे चुनूं? अपेक्षित परिणाम होगा:
id gid description status rtime
--------------------------------------
300 6250 something 2 3 2016-09-19
200 6250 something 1 1 2016-09-15
100 6250 something 3 1 2016-09-11
200 6050 something 2 1 2016-09-02
100 6050 something 1 3 2016-09-01
अतिरिक्त प्रश्न: जब मैं इस तरह की एक समय सीमा के लिए फ़िल्टर:
[...]
WHERE runner.rtime BETWEEN '2016-08-25' AND '2016-09-16'
वहाँ सुनिश्चित करने के लिए एक सरल तरीका है, कि समूहों काट नहीं कर रहे हैं लेकिन किसी के साथ दिखाई देते हैं उनके सभी रिकॉर्ड या बिल्कुल नहीं?
आप दो प्रश्नों आवश्यकता होगी। उपरोक्त यह पता लगाने के लिए कि शीर्ष 2 समूह क्या हैं, और उसके बाद उन दो समूहों में सभी रिकॉर्ड प्राप्त करने के लिए उन 2 समूह आईडी का उपयोग करने के लिए एक मूल क्वेरी। –
SQL सर्वर विंडोिंग फ़ंक्शंस, ROW_NUMBER, NTILE, आदि – SQLMason