Hallo,
Op dit moment heb ik een resultset die ik verkrijg met behulp van een query die lijkt op deze:
SELECT year,column1,column2,column3 ..... column 110 FROM table WHERE companyid=? ORDER BY year DESC
Resultaat:
Dit is een voorbeeld met 3 jaren, maar in werkelijkheid zijn dit er veel meer. Nu wil ik deze resultset groeperen en wel zo dat van elke kolom het laatst beschikbare jaar resulteert. In mijn voorbeeld komt dat neer op het volgende resultaat:
Is voor een dergelijke groepering een functie in MySQL? Ik vraag me ook af of die er eventueel wel zou zijn in PostgreSQL.
Zo niet, wat is dan de beste oplossing, met de beschikbare programmeertaal de resultset bewerken om het resultaat te krijgen? Het kan gaan om veel data die moet worden opgehaald. Het resultaat wordt gepresenteerd op het web, dus performance speelt een rol.
Alvast bedankt.
Op dit moment heb ik een resultset die ik verkrijg met behulp van een query die lijkt op deze:
SELECT year,column1,column2,column3 ..... column 110 FROM table WHERE companyid=? ORDER BY year DESC
Resultaat:
year | column1 | column2 | column3 |
2003 | NULL | 10 | NULL |
2002 | 30 | NULL | NULL |
2001 | 40 | NULL | 200 |
Dit is een voorbeeld met 3 jaren, maar in werkelijkheid zijn dit er veel meer. Nu wil ik deze resultset groeperen en wel zo dat van elke kolom het laatst beschikbare jaar resulteert. In mijn voorbeeld komt dat neer op het volgende resultaat:
column1 | column2 | column3 |
30 | 10 | 200 |
Is voor een dergelijke groepering een functie in MySQL? Ik vraag me ook af of die er eventueel wel zou zijn in PostgreSQL.
Zo niet, wat is dan de beste oplossing, met de beschikbare programmeertaal de resultset bewerken om het resultaat te krijgen? Het kan gaan om veel data die moet worden opgehaald. Het resultaat wordt gepresenteerd op het web, dus performance speelt een rol.
Alvast bedankt.