vvanasperen
Gebruiker
- Lid geworden
- 9 mrt 2009
- Berichten
- 68
Hoe kan ik rijen tellen die aan specifieke kenmerken voldoen?
Dag allemaal,
Ik heb er het hele weekend mijn hoofd over lopen breken, maar ik kom er maar niet uit. En ja, heb Google ook af lopen struinen, maar helaas zonder resultaat. Dus, wat doe je dan? Dan vraag je je vrienden van Helpmij.nl om hulp. Het gaat me om het volgende. Ik heb een tabel x met daarin datumtijd, telefoon en reden. Ik maak gebruik van row_number() over (partition by tabelx.telefoon, tabelx.reden order by tabelx.datumtijd) om het veld rang toe te voegen. Dit leidt tot onderstaand resultaat.
Output 1
datumtijd telefoon reden rang
01-01-2012 09.00 06-12345678 A 1
03-02-2012 10.36 06-12345678 A 2
03-02-2012 12.11 06-12345678 A 3
06-03-2012 11.33 06-12345678 B 1
15-03-2012 14.23 06-12345678 B 2
03-04-2012 16.34 06-12345678 A 4
11-04-2012 12.23 06-12345678 B 3
11-04-2012 16.10 06-12345678 B 4
25-05-2012 08.45 06-12345678 A 5
01-06-2012 13.13 06-12345678 A 6

Maar bovenstaande is dus maar half van wat ik graag wil. Want... ik wil dat de telling opnieuw begint op het moment dat er een andere reden is geweest. Het resultaat zou er uit moeten komen te zien als onderstaande output 2 en het verschil zit hem dus in het veld rang.
Output 2
datumtijd telefoon reden rang
01-01-2012 09.00 06-12345678 A 1
03-02-2012 10.36 06-12345678 A 2
03-02-2012 12.11 06-12345678 A 3
06-03-2012 11.33 06-12345678 B 1
15-03-2012 14.23 06-12345678 B 2
03-04-2012 16.34 06-12345678 A 1
11-04-2012 12.23 06-12345678 B 1
11-04-2012 16.10 06-12345678 B 2
25-05-2012 08.45 06-12345678 A 1
01-06-2012 13.13 06-12345678 A 2

Het enige wat ik tegen ben gekomen en waarvan ik dacht dat het wellicht iets zou kunnen zijn is "rows UNBOUNDED PRECEDING". Maar ik kan maar niet uitvinden of dat zo is hoe ik dit toe zou kunnen passen. De grote vraag blijft dus: wie kan mij helpen om tot output 2 te komen? Alle ideeën zijn van harte welkom, dus ook andere manieren om dit te bereiken. Alvast enorm bedankt voor het meedenken.
Groeten Vincent
Dag allemaal,
Ik heb er het hele weekend mijn hoofd over lopen breken, maar ik kom er maar niet uit. En ja, heb Google ook af lopen struinen, maar helaas zonder resultaat. Dus, wat doe je dan? Dan vraag je je vrienden van Helpmij.nl om hulp. Het gaat me om het volgende. Ik heb een tabel x met daarin datumtijd, telefoon en reden. Ik maak gebruik van row_number() over (partition by tabelx.telefoon, tabelx.reden order by tabelx.datumtijd) om het veld rang toe te voegen. Dit leidt tot onderstaand resultaat.
Output 1
datumtijd telefoon reden rang
01-01-2012 09.00 06-12345678 A 1
03-02-2012 10.36 06-12345678 A 2
03-02-2012 12.11 06-12345678 A 3
06-03-2012 11.33 06-12345678 B 1
15-03-2012 14.23 06-12345678 B 2
03-04-2012 16.34 06-12345678 A 4
11-04-2012 12.23 06-12345678 B 3
11-04-2012 16.10 06-12345678 B 4
25-05-2012 08.45 06-12345678 A 5
01-06-2012 13.13 06-12345678 A 6

Maar bovenstaande is dus maar half van wat ik graag wil. Want... ik wil dat de telling opnieuw begint op het moment dat er een andere reden is geweest. Het resultaat zou er uit moeten komen te zien als onderstaande output 2 en het verschil zit hem dus in het veld rang.
Output 2
datumtijd telefoon reden rang
01-01-2012 09.00 06-12345678 A 1
03-02-2012 10.36 06-12345678 A 2
03-02-2012 12.11 06-12345678 A 3
06-03-2012 11.33 06-12345678 B 1
15-03-2012 14.23 06-12345678 B 2
03-04-2012 16.34 06-12345678 A 1
11-04-2012 12.23 06-12345678 B 1
11-04-2012 16.10 06-12345678 B 2
25-05-2012 08.45 06-12345678 A 1
01-06-2012 13.13 06-12345678 A 2

Het enige wat ik tegen ben gekomen en waarvan ik dacht dat het wellicht iets zou kunnen zijn is "rows UNBOUNDED PRECEDING". Maar ik kan maar niet uitvinden of dat zo is hoe ik dit toe zou kunnen passen. De grote vraag blijft dus: wie kan mij helpen om tot output 2 te komen? Alle ideeën zijn van harte welkom, dus ook andere manieren om dit te bereiken. Alvast enorm bedankt voor het meedenken.
Groeten Vincent
Laatst bewerkt: