[ vbbojan @ 23.07.2013. 18:31 ] @
Potrebno je da upit vrati četiri najmlađa termina za svaku grupu. Možda je olakšavajuća okolnost što je broj grupa zakucan na četiri. Bilo bi zgodno da može, ako ne prebacujem rešenje na aplikativni nivo ... mada bi ovako bilo optimalno i elegantno. Očekivani rezultat za date test podatke je: Code: 1 2 3 4 -------------------------------------------------- 2011-01-01 2011-01-01 2011-01-01 2011-01-01 2012-01-01 2012-01-01 2012-01-01 2012-01-01 2013-01-01 2013-01-01 2013-01-01 2013-01-01 2014-01-01 2014-01-01 2014-01-01 2014-01-01 Tabela i data: Code: CREATE TABLE `termini` ( `ID` int(11) unsigned NOT NULL AUTO_INCREMENT, `GrupaID` int(10) unsigned NOT NULL, `Datum` date NOT NULL, PRIMARY KEY (`ID`), KEY `GrupaID` (`GrupaID`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; INSERT INTO `termini` (`ID`, `GrupaID`, `Datum`) VALUES (1, 1, '2010-01-01'), (2, 2, '2010-01-01'), (3, 3, '2010-01-01'), (4, 4, '2010-01-01'), (5, 1, '2011-01-01'), (6, 2, '2011-01-01'), (7, 3, '2011-01-01'), (8, 4, '2011-01-01'), (9, 1, '2012-01-01'), (10, 2, '2012-01-01'), (11, 3, '2012-01-01'), (12, 4, '2012-01-01'), (13, 1, '2013-01-01'), (14, 2, '2013-01-01'), (15, 3, '2013-01-01'), (16, 4, '2013-01-01'), (17, 1, '2014-01-01'), (18, 2, '2014-01-01'), (19, 3, '2014-01-01'), (20, 4, '2014-01-01'); |