साथ पंक्तियों को फ़िल्टर करने एसक्यूएल समूह उपयोग करने के लिए मैं निम्न तालिकाकैसे अधिकतम दिनांक मान
CREATE TABLE Test
(`Id` int, `value` varchar(20), `adate` varchar(20))
;
INSERT INTO Test
(`Id`, `value`, `adate`)
VALUES
(1, 100, '2014-01-01'),
(1, 200, '2014-01-02'),
(1, 300, '2014-01-03'),
(2, 200, '2014-01-01'),
(2, 400, '2014-01-02'),
(2, 30 , '2014-01-04'),
(3, 800, '2014-01-01'),
(3, 300, '2014-01-02'),
(3, 60 , '2014-01-04')
;
है मैं परिणाम जो केवल ईद की तारीख से अधिकतम मूल्य होने का चयन करता है हासिल करना चाहते हैं। यानी
आईडी, मूल्य, adate
1, 300,'2014-01-03'
2, 30 ,'2014-01-04'
3, 60 ,'2014-01-04'
कैसे मैं इस group by
का उपयोग कर प्राप्त कर सकते हैं? मैंने निम्नानुसार किया है लेकिन यह काम नहीं कर रहा है।
Select Id,value,adate
from Test
group by Id,value,adate
having adate = MAX(adate)
किसी क्वेरी के साथ मदद कर सकते हैं?
क्या होगा अगर 'adate' को दो अन्य स्तंभों के माध्यम से निर्धारित किया जाना चाहिए जिन्हें संघ के रूप में संभाला जाना चाहिए? –
@ फ़ैबियनपिकोन: सिद्धांत समान है। एक क्वेरी लिखें जो "आईडी" प्रति पंक्ति एक पंक्ति लौटाती है, और इसमें शामिल हों। आपको यूनियन क्वेरी लिखनी पड़ सकती है, और उसके बाद से चुनें। (चयन करें * से चुनें ... यूनियन चुनें ...)) –