[ 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');



[ bogdan.kecman @ 28.07.2013. 14:32 ] @
sorry za delay u odgovaranju, postah calac pa je slobodno vreme "gone with the wind"
elem, mysql je malo sakat po tom pitanju (pgsl ako se dobro secam ima elegantno resenje za ovo) tako da ti treba 4 upita, sad dal ces da izvrsis 4 upita iz app-a ili ces da napravis 4 selekta u jednom isti djavo. ja generalno savetujem 4 zasebna upita posto je em preglednije em sutra to mozes da skaliras npr na 4 odvojena slave servera pa da teras upit paralelno :)