Ik heb een database met weeknummers

voorbeeld
201601
201607
201610


Nu wil ik een gemiddeld weeknummer terug krijgen (1 waarde) Voorbeeld zou ongeveer een waarde van 201606 moeten terug geven.
Nu heb ik de volgende sql query gemaakt. Ik heb de query even simpel gehouden. De orginele query bevat nog wat joins :)

SELECT AVG(weeknummer) FROM Week_Nr_TB

Nu krijg ik wel een gemiddelde week terug alleen ik krijg soms ook waarden terug als 201696 :) Nu is mijn vraag is er een optie in SQL om gelijk het gemiddelde om te rekenen naar een normaal weeknummer?
Vraagje tussendoor: wat is een "gemiddeld weeknummer" in dit geval? Als je weken 1,2,3 en 52 hebt, dan komt het gemiddelde ergens op 10 uit, maar rond die tijd was er nul activiteit, want alles gebeurde in de laatste week van december en de eerste drie weken van januari. Als je tievallig dertig records in week 52 hebt kom je ergens in juni uit, en toen was er in geen velden of wegen enige activiteit te bekennen...

Het gaat puur om een gemiddelde.

Het probleem waar ik wel tegen aanloop is 201650 en 201702 dan gaat het plakken van een jaartal niet werken.

[size=xsmall]Toevoeging op 14/10/2016 15:54:19:[/size]

Ik heb ondertussen een php functie gevonden die van al mijn weken netjes datums heeft gemaakt. Ik heb nu dus datum. Alleen als ik AVG(week(datum)) uitvoer krijg ik nog steeds een waarde terug....
Je telt getallen op en dan komt er een waarde uit als je er het gemiddelde van neemt.

weeknumner 1
weeknumner 11
weeknumner 35
Som = 47
Gemiddeld 47/3 = 15,66...

Had je iets anders verwacht?
Dat vroeg ik me dus ook af: wat wil je met een gemiddeld weeknummer?

Het gemiddelde van kerst en pasen is week 31,5 ergens in de eerste helft van augustus. En nu?
Dan weet je wanneer je tussen pasen en kerst op vakantie moet.

Da' s het leuke van databases. Je kan allerlei niet relevantie informatie ophalen.

"Zoek iedereen die jan heet en waarvan het huisnumner de laatste 2 cijfers van de postcode is"

Alleen de vragensteller weet het belang van de vraag.
"Het gaat puur om een gemiddelde."

Dat had je al gezegd, en de vraag daarop was: Welk probleem wil je met dat gemiddelde op te lossen?

Stel dat een reisorganisatie wil weten in welke week mensen gemiddeld op vakantie gaan, dan hebben ze een hoop data over weken 1-4, 20-30 en 45-52. gemiddelde:35. Maar in week 35 gaat dus niemand op vakantie.
Als een supermarkt banketstaven inkoopt op het gemiddelde weeknummer waarin ze die dingen verkopen, dan komen ze uit op weken 1,2,50,51 en 52 gemiddelde: 30. Dus zitten ze in juli al met banketstaven...

En daarom wil ik graag weten waar je dit gemiddelde voor wil gebruiken.

Kom, laat mijn eerste reply op phphulp sinds jaren niet meteeen weer zo een zijn van "ik weet wat ik doe, geef me nou maar gewoon het antwoord dat ik vraagen stel niet van die irrelevante vragen, daar vraag ik toch niet om".
Een jaar heeft 52 of 53 weken.
Maar een gemiddelde wordt berekend in het tientallig stelsel.
Dus alsof een jaar 00 tot 99 is 100 weken zou tellen.
(201650+201710)/2=201680.

Zoals San Theo al zei moet je in elk geval alleen de weeknummers nemen.
(50+10)/2=30. Dan klopt het wel.

Als je echter over een reeks van jaren een bepaalde week in een bepaald jaar als uitkomst wilt, lijkt me het gebruik van timestamp(), date() en time() de aangewezen weg. Dan berekent het systeem de datums (jaja, ik weet het), en die kan dat altijd beter. :-) Hoe precies weet ik niet, daar ben ik zelf nog niet aan toe...
De reactie van Pg Vincent lijkt me de enige juiste.

Het valt me op dat er de laatste tijd regelmatig vrij klakkeloos oplossingen worden aangedragen voor vraagstellingen waar je op je minst je vraagtekens bij kunt zetten. Je kan niet een "gemiddelde" week uitrekenen op basis van "omringende" weken. Dat raakt kant noch wal.

Een gemiddelde week kan alleen een week zijn waarin iets gebeurt wat een of ander gemiddelde weerspiegelt. Bijv. in een supermarkt worden per jaar 5.200 maaltijden Babi Pangang verkocht. Vervolgens kun je dan stellen dat dat er per week 100 zijn, en dan kun je kijken in welke week er precies 100 zijn verkocht. Dan heb je een "gemiddelde" week.

Drie weken uit een jaar selecteren en daar vervolgens een gemiddelde uithalen dat kan niet en slaat op de hier genoemde wijze ook nergens op. Het zou enkel ergens op slaan als je er extern gedrag aan koppelt.

Het zou prettig zijn als de vaste kern alvorens tot antwoorden over te gaan (hoe goed bedoeld ook) zich ervan gewist dat de vraagstelling een logische achterliggende gedachte heeft. Zo niet, vraag dan eerst wat de bedoeling van de vraag is, want die is mij tot op heden niet duidelijk.
Ozzie PHP op 16/10/2016 18:07:00

Het zou prettig zijn als de vaste kern alvorens tot antwoorden over te gaan (hoe goed bedoeld ook) zich ervan gewist dat de vraagstelling een logische achterliggende gedachte heeft.

Lees eens terug: je herhaalt de kanttekeningen die de vaste kern al had geplaatst… ;-)

Reageren