login  Naam:   Wachtwoord: 
Registreer je!
 Forum

ononderbroken datum reeks bepalen voor selectie

Offline markla - 03/04/2014 20:00
Avatar van marklaPHP interesse

Voor mijn statistieken website ben ik op zoek naar een query die een bepaalde ononderbroken datum reeks kan selecteren

Voorbeeld:

Datum 01 w |
Datum 02 w | A
Datum 03 w |
Datum 04 g
Datum 05 v
Datum 06 g
Datum 07 w |
Datum 08 w |
Datum 09 w | B
Datum 10 w |
Datum 11 w |
Datum 12 g
Datum 13 w

leganda
w= winst
g= geljk
v= verlies

in bovenstaand overzicht is te zien dat reeks A 3X w(inst) heeft een reeks B 5X w(inst)

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 krijg ik dat voor elkaar?

De datum is de enigste referentie die ik heb om de op een volgorde te bepalen en de opmaak is± 2006-07-15 18:00:00

4 antwoorden

Gesponsorde links
Offline Thomas - 03/04/2014 20:35 (laatste wijziging 03/04/2014 20:53)
Avatar van Thomas 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:

  1. . w | g | v
  2. -----------------+---+---
  3. Datum 01 w | 1 | 0 | 0
  4. Datum 02 w | A 2 | 0 | 0
  5. Datum 03 w | 3 | 0 | 0
  6. Datum 04 g 0 | 1 | 0
  7. Datum 05 v 0 | 0 | 1
  8. Datum 06 g 0 | 1 | 0
  9. Datum 07 w | 1 | 0 | 0
  10. Datum 08 w | 2 | 0 | 0
  11. Datum 09 w | B 3 | 0 | 0
  12. Datum 10 w | 4 | 0 | 0
  13. Datum 11 w | 5 | 0 | 0
  14. Datum 12 g 0 | 1 | 0
  15. 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 .
Offline markla - 03/04/2014 22:48
Avatar van markla PHP interesse @FangorN Het gaat idd om gespeelden wedstrijden, en dus statisch data, waarvan ik bijvoorbeeld wil weten wat de langste onafgebroken reeks van winsten of verliezen of...... is


De tabel die jij voorstelt heb ik gedeeltelijk al maar die bevat alleen competitie wedstrijden.
Als ik nu beker of oefen/vriendschappelijke wedstrijden mee wil laten draaien in het overzicht heb ik daar niet zoveel aan. misschien moet ik die uitbreiden.



Offline Thomas - 04/04/2014 17:36
Avatar van Thomas Moderator Ook daar zou je een extra kolom voor kunnen introduceren: wedstrijdtype.

Dit wordt dan een extra selectie-argument in je query (... WHERE wedstrijdtype = ...).
Offline markla - 04/04/2014 20:28 (laatste wijziging 04/04/2014 20:30)
Avatar van markla PHP interesse wedstrijdtype heb ik al bij de wedstrijd zelf als waarde staan



Gesponsorde links
Je moet ingelogd zijn om een reactie te kunnen posten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.168s