|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 | ||
|
Membre confirmé
![]() |
Bonsoir,
J'ai une grosse base de turf sous Oracle qui est alimentée automatiquement tous les jours. Je travaille actuellement sur un modèle prédictif pour le jeux. Et oui, ça existe! J'ai une question SQL un peu tordue. Suis pas très à l'aise avec les queries analytiques. Je chercher à détecter un jockey qui a réussi à se placer 3 fois dans les 3 premiers de la course dans les 3 derniers jours. Si cette condition est remplie, envisager de jouer au maximum les 3 prochains chevaux montés par ce jockey. J'ai dit envisager, pas jouer :-) Ensuite il y a d'autres critères... Voici le jeu d'essai La requête doit me positionner la colonne play à No ou Yes suivant le cas. J'ai déjà fait quelques tests avec les fonctions lag et lead mais je coince un peu. Un grand merci pour votre aide. Laurent, une idée :-) Jko Code :
__________________
OCA-OCP 11g, SQL and Performance & Tuning Expert 11g Data Guard 11g, ASM & Grid Control 11g, Apex |
||
|
00
|
|
|
#2 |
|
Membre chevronné
![]() O. JolySupport Inscription : décembre 2010 Messages : 287 ![]() |
Ca doit pouvoir se faire en utilisant la méthode dite "Tabibitosan" sur une colonne calculée en fonction de la place qui dira si le joueur est placé ou non.
Bon je n'ai pas le temps d'écrire la requête, mais en connaissant la méthode ça devrait aller ... Pour info les questions de la certif ne sont pas si "complexes". |
|
00
|
|
|
#3 | |||
|
Membre expérimenté
![]() François Inscription : février 2010 Messages : 306 ![]() |
Vu qu'on a 4jours consecutifs ou est classe parmi les 3premiers, on devrait aussi avoir 4 jours consecutifs ou on envisage de jouer le cheval.
Citation:
La ligne 8, du 7/02, ou il est classe 8 eme on devrait etre a vrai aussi. Vu que que la serie du 30-31-05 correspond a votre critere. Ou bien, c'est la ligne 4 du 31 qui devrait etre a vrai aussi, a vous de voir, mais il y a un probleme dans tous les cas. Du coup peut-etre que les requetes que vous avez ecrites fonctionnent en fait Mais faut les proposer pour le voir |
|||
|
|
00
|
|
|
#4 | ||
|
Membre confirmé
![]() |
Hello Rams7s,
Merci pour ton message, En fait je n'ai pas précisé un detail, il faut le numéro de la course pour les cas ou la date est la même. Voici le jeux d'essais avec la modif. Code :
Je vais poster quelques essais dans la journée. Merci a vous jko
__________________
OCA-OCP 11g, SQL and Performance & Tuning Expert 11g Data Guard 11g, ASM & Grid Control 11g, Apex |
||
|
00
|
|
|
#5 | ||
![]() ![]() |
Je l'ai fait comme ça :
Code :
__________________
Email : http://scr.im/waldar |
||
|
00
|
|
|
#6 |
|
Membre confirmé
![]() |
Hello Waldar,
Génial! Par contre je ne comprends pas la condition d’arrêt qui selon ta ligne 7 est conditionnées par max (place) sur les lignes de 6 a 4 précédentes. La condition est sur le nombre de coups max a jouer. Ou alors j'ai pas saisis quelque chose. Jko
__________________
OCA-OCP 11g, SQL and Performance & Tuning Expert 11g Data Guard 11g, ASM & Grid Control 11g, Apex |
|
00
|
|
|
#7 |
![]() ![]() |
C'est pour éviter d'avoir quatre "Yes" d'affilé si le premier "Yes" est aussi classé dans les trois premiers, le cas de figure précisé par Rams7s.
Je m'assure donc avoir au moins un classement moins bon que 3 entre les lignes -6 à -4.
__________________
Email : http://scr.im/waldar |
|
00
|
|
|
#8 | ||||
|
Membre confirmé
![]() |
Hello,
Alors j'ai encore un peu de travail. Je m'explique. La condition de début de jeux est: Se placer 3 fois dans les 3 premiers de la course dans les 3 derniers jours. Le cas tordu, Il peut courir le 29 Janvier une course puis 3 courses le 30 Janvier, puis une course le 31 Janvier. Si il se place 3 fois sur cette période, le signal de jeux est donné. Voici le test case modifié suivi du résultat Code :
Code :
A toute jko
__________________
OCA-OCP 11g, SQL and Performance & Tuning Expert 11g Data Guard 11g, ASM & Grid Control 11g, Apex |
||||
|
00
|
|
|
#9 |
|
Membre confirmé
![]() |
Hello
J'ai pose un test mais marche pas
__________________
OCA-OCP 11g, SQL and Performance & Tuning Expert 11g Data Guard 11g, ASM & Grid Control 11g, Apex |
|
00
|
|
|
#10 | ||||
|
Expert Confirmé Sénior
![]() Inscription : juillet 2003 Messages : 3 440 ![]() |
Allez, je me lance..
Si j'ai bien compris, ce sont les résultats sur les 3 derniers jours de course (une date où il n'y a pas de course n'est pas comptée). Code :
Code :
__________________
More Code : More Bugs. Less Code : Less Bugs |
||||
|
|
00
|
|
|
#11 | ||||||
|
Membre confirmé
![]() |
Hello McM,
C'est dans les 3 jours soit: - 3 courses dans la journée si 3 places entre 1 et 3 signal = ok - 1 course J-2 0 course sur J-1 et 2 Courses sur le jour si 3 places entre 1 et 3 signal = ok ... Voici une idée pour détecter le signal de jeux. Peut-être que ça va nous donner une piste. Code :
Code :
Code :
jko
__________________
OCA-OCP 11g, SQL and Performance & Tuning Expert 11g Data Guard 11g, ASM & Grid Control 11g, Apex |
||||||
|
00
|
|
|
#12 | ||
![]() ![]() |
Je n'ai pas le temps de terminer immédiatement, mais voilà un début qui me paraît intéressant :
Code :
__________________
Email : http://scr.im/waldar |
||
|
00
|
|
|
#13 | ||||
|
Membre confirmé
![]() |
Je tente de compléter...
Code :
Code :
__________________
OCA-OCP 11g, SQL and Performance & Tuning Expert 11g Data Guard 11g, ASM & Grid Control 11g, Apex |
||||
|
00
|
|
|
#14 | |||||||||
|
Membre Expert
![]() Inscription : août 2008 Messages : 1 271 ![]() |
J'ai au moins un début de solution (à la spécificité près pas encore envisagée) à base de WITH récursif donc 11GR2... tu n'as pas précisé ta version j'espère que ça peut te servir. Moi au moins ça m'a permis de rentré dans le WITH récursif
J'ai mis des commentaires je pense que c'est à peu près compréhensible : Code :
Code :
Code :
Citation:
- Et pas si dans les 2 jours suivants, car on a déjà commencé à jouer [edit2] Code :
Pour ne sélectionner qu'une ligne... |
|||||||||
|
|
00
|
|
|
#15 |
|
Membre confirmé
![]() |
Hello skuatamad,
Oui c'est une 11g R2 et cela fonctionne bien. Un grand merci a toi! Nous avons plusieurs écoles ici, avec ma petite fonction c'est relativement simple a comprendre et a adapter mais ta solution est juste géniale! Je me demandais si il avais une solution plus jolie. C'est chose faite! Avec tout mon background SQL je ne suis même pas capable de poser le graphe d’exécution de ta requête Le recursive_increment (dt, place, NumCourse, dr, rn, ready_to_gamble, day_of_ready) me pose des problèmes de compréhension En tout cas un grand merci. Je laisse encore le sujet ouvert pour ceux qui on d'autres solutions plus (simples) Je vais aussi poster tout a l'heure ma version basée sur 2 fonctions. Jko
__________________
OCA-OCP 11g, SQL and Performance & Tuning Expert 11g Data Guard 11g, ASM & Grid Control 11g, Apex |
|
00
|
|
|
#16 | ||||
|
Membre confirmé
![]() |
Voici une solution, avec une seule fonction.
Code :
Code :
Dans la première séquence de jeux, on s’arrête après le gain en ligne 10. Je poste cela tout bientôt. jko
__________________
OCA-OCP 11g, SQL and Performance & Tuning Expert 11g Data Guard 11g, ASM & Grid Control 11g, Apex |
||||
|
00
|
|
|
#17 |
|
Membre confirmé
![]() |
Hello, skuatamad
Le premier cheval a jouer n'est pas le cheval sur lequel le signal de jeux est déclenché mais le suivant. jko
__________________
OCA-OCP 11g, SQL and Performance & Tuning Expert 11g Data Guard 11g, ASM & Grid Control 11g, Apex |
|
00
|
|
|
#18 | ||
![]() ![]() |
Voilà j'ai pu terminer ma solution :
Code :
__________________
Email : http://scr.im/waldar |
||
|
10
|
|
|
#19 |
|
Membre confirmé
![]() |
Super
![]() Merci beaucoup Waldar. Jko
__________________
OCA-OCP 11g, SQL and Performance & Tuning Expert 11g Data Guard 11g, ASM & Grid Control 11g, Apex |
|
00
|
|
|
#20 | |||
|
Membre Expert
![]() Inscription : août 2008 Messages : 1 271 ![]() |
Citation:
Code :
Détecter les starts en SQL, en utilisant une des idées précédemment proposées, puis utiliser une fonction pipelined pour pousser le nombre de ligne voulue à YES. En plus gérer le "stop at the winner" sera simple. Bon sinon je pense que la solution de Waldar est plus simple, ou au moins, moins couteuse pour oracle ![]() [edit] oui je viens de la relire, c'est nettement plus simple
|
|||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com