Moderator |
|
Citaat: Nu zou ik graag als output van de query willen hebben van Datum 07 t/m Datum 11 is een reeks van 5X resultaat w Maar hoe luid dan je vraagstuk precies?
"Geef mij de langste onafgebroken reeks van winsten"?
Of wil je hier een ondergrens/precieze waarde/bovengrens aan stellen? "Geef mij alle onafgebroken reeksen met minimale lengte X / ter lengte X / met ten hoogste lengte X"? (die laatste is misschien dubbelzinnig)
Of wil je ook andere reekstypen (gelijk, verlies) bekijken?
Ik weet niet precies of er een manier binnen MySQL is om op grond van dit soort inhoudelijke verbanden tussen verschillende records selecties te maken, maar je zou dit selecteerprobleem ook kunnen verplaatsen naar de code die deze records uitleest, oftewel, je kunt er altijd voor kiezen dit sorteer/selecteerprobleem te verplaatsen naar PHP (als dat de programmeertaal is die je gebruikt).
Je bent niet verplicht deze met/in een query op te lossen en wellicht is dit (stukken) eenvoudiger op te lossen in PHP zelf.
EDIT: nu ik er over nadenk, omdat dit resultaten zijn die waarschijnlijk niet veranderen (omdat ze in het verleden liggen) zou je deze informatie "redundant" kunnen opslaan in dezelfde tabel. Je zou dus elke keer als er een nieuw wedstrijdresultaat (? ik neem aan dat dit om wedstrijden gaat of iets soortgelijks?) wordt ingevoerd, dat je in een daarvoor bestemde kolom opslaat waar de "teller" van een reeks op staat, dus zoiets:
. w | g | v
-----------------+---+---
Datum 01 w | 1 | 0 | 0
Datum 02 w | A 2 | 0 | 0
Datum 03 w | 3 | 0 | 0
Datum 04 g 0 | 1 | 0
Datum 05 v 0 | 0 | 1
Datum 06 g 0 | 1 | 0
Datum 07 w | 1 | 0 | 0
Datum 08 w | 2 | 0 | 0
Datum 09 w | B 3 | 0 | 0
Datum 10 w | 4 | 0 | 0
Datum 11 w | 5 | 0 | 0
Datum 12 g 0 | 1 | 0
Datum 13 w 1 | 0 | 0
. w | g | v -----------------+---+--- Datum 01 w | 1 | 0 | 0 Datum 02 w | A 2 | 0 | 0 Datum 03 w | 3 | 0 | 0 Datum 04 g 0 | 1 | 0 Datum 05 v 0 | 0 | 1 Datum 06 g 0 | 1 | 0 Datum 07 w | 1 | 0 | 0 Datum 08 w | 2 | 0 | 0 Datum 09 w | B 3 | 0 | 0 Datum 10 w | 4 | 0 | 0 Datum 11 w | 5 | 0 | 0 Datum 12 g 0 | 1 | 0 Datum 13 w 1 | 0 | 0
Afhankelijk van je vraagstuk zou je dan kunnen sorteren op w / g / v kolom (of MAX() gebruiken ofzo). Dit zou dan een alternatief kunnen zijn, afhankelijk van de informatie die je precies wilt.
Dus of je berekent het e.e.a. voordat je je gegevens opslaat, of je doet dit als je ze uitleest . |