Normalement ça devrait t'aider :
http://sql.developpez.com
Normalement ça devrait t'aider :
http://sql.developpez.com
Suivez le développement de Chibis Bomba
twitter : https://twitter.com/MoD_DiB
DevBlog : http://moddib.blogspot.fr/
Merci MoDDiB, c'est juste ce dont j'avais besoin !
Bon retour parmi les adeptes de Sade !
Pour ta requête quelque chose de ce type devrait suffire (Attention : Syntaxe Oracle qui peut légèrement différée sur MySQL) :
SELECT Nom, High_Score
FROM
(SELECT nom, MAX(score) High_Score
FROM table
GROUP BY nom
)
ORDER BY High_Score DESC;
A voir après comment tu veux limiter le nombre d'enregistrement en retour, soit via la requête soit par toi même.
Merci Scriuiw,
alors, sur MySQL, et sans passer par 2 select, j'ai essayé avec ça:
afin d'avoir les 10 meilleurs joueurs.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 SELECT name, MAX( score ) AS max_score FROM scores GROUP BY name ORDER BY max_score DESC LIMIT 10
Pour exécuter ta requête en MySQL, je dois rajouter un alias pour la "sous-table", comme ceci:
Maintenant, les données "nom" et "score" ne sont pas suffisantes, puisque j'en récupère d'autres, comme le niveau, la durée de la partie, etc...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 SELECT name, High_Score FROM (SELECT name, MAX(score) as High_Score FROM scores GROUP BY name ) as T ORDER BY High_Score DESC
Je suppose que je dois faire un JOINT entre ma "table des max" et la table des scores.
En fait, la sous-requête en l'état ne sert à rien, ta première requête est très bien ainsi.
La sous-requête est une erreur de conception car j'était parti sur une autre solution avec limitation à 10 (Via ROWNUM), bref....
Si toutes tes données sont dans la même table, pas besoin de jointure, dans le cas contraire, tu en auras effectivement besoin (Mais ça dépend en fait !)
En fait, en essayant ça:
donc, en ajoutant le champs "level" au select, je m’aperçois que je n'ai pas la donnée qui correspond au score max.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 SELECT name, MAX( score ) AS max_score, level FROM scores GROUP BY name ORDER BY max_score DESC LIMIT 10
J'ai essayé une jointure comme ça:
et là, ça passe. Mais je ne sais pas si je suis obligé ou non de passé par la jointure...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 SELECT scores.name, score, level FROM scores JOIN (SELECT name, MAX(score) as High_Score FROM scores GROUP BY name ) as t WHERE score = High_score ORDER BY High_Score DESC
Le problème avec la conception actuelle de ta 1ere requête, c'est que tu prends le score maximum pour le tuple Nom et level, donc tu auras les 10 meilleurs score par joueur et level.
As-tu une colonne ID en tant que PK pour ta table joueur et score ?
Autrement dit, qu'elle est la PK de ta table score ?
Si tel est le cas, alors une requête de ce type devrait faire l'affaire (Attention, encore une fois syntaxe Oracle, je n'ai plus fait de MySQKL depuis... pifouu..) :
Je n'ai volontairement pas mis de limitation au nombre de retours vu que tu le gères très bien sous MySQL
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 SELECT ... (Tout ce qui te fait plaisir) FROM Table_Score S WHERE EXISTS (SELECT Nom, MAX(Score) FROM Table_Score WHERE S.Id = Id )
Sinon la 2eme requête peut faire l'affaire.
Youhou il revient
ça c'est une bonne nouvelle
Concernant ta requête, je pense que la solution de Scriuiw est la plus propre, car ça évite d'avoir un JOIN dans ta requête, et la requête sera plus efficace
Par contre, si j'ai bien suivi ce que tu dis, à priori l'Id de l'utilisateur est le nom.
Travaillant avec Access, et après plusieurs tests, même si je pense que le résultat pourrait être mieux, tu peux écrire un truc dans ce genre :
Celle-ci me donne le résultat recherché, par rapport à ta demande
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 SELECT name, level, score FROM scores T INNER JOIN (SELECT scores.nom, Max(scores.score) AS MaxScore FROM scores GROUP BY scores.name) AS ScoreMax ON (T.score =ScoreMax.MaxScore) AND (T.name= ScoreMax.name);
- Avant de poster, et http://www.developpez.com/sources/
- Lors du post, n'oubliez pas, si besoin les balises CODE => voir ici pour l'utilisation
- N'oubliez pas le
- N'oubliez pas le si la réponse vous a été utile !
Je n'ai pas de table "joueur", il n'y a pas d'inscription.
Toutes les données sont contenues dans la table "scores".
La PK est composée du joueur, du score, de la date et de la version.
Je n'arrive pas à faire fonctionner ta requête, elle me renvoie toutes les entrées de la table.
Salut illight !
Oui, je suis re-là
Merci, ta requête fait bien ce que je cherche à faire (et que je fais avec ma jointure).
YES ! Cirrus is back !
Bon pour la requête SQL, vous avez l'air bien parti, je botte en touche, p'tite fatigue
Roller Ten (Unity 3D WebGL) - la discussion sur developpez.net
Bonsoir et bon weekend à tous !
Pour vous faire un peu patienter, et comme vous n'avez rien à vous mettre sous la dent depuis des mois, je vous présente une nouvelle vidéo dans laquelle vous verrez un nouveau sort en action (un sort que vous allez aimer, je le sens ), et la découverte d'une salle secrète à l'aide d'un parchemin de révélation.
Tout est encore "en travaux", les nouveaux graphismes sont temporaires et il faut éventuellement encore ajouter des effets / animations et sons.
Ce qui a été développé depuis la dernière release:
- quelques objets,
- un nouveau monstre + 1 nouvelle variante de monstre,
- un nouveau sort,
- une dizaine de potions (à boire à vos risques et périls),
- de petites améliorations ici et là,
- des surprises
La vidéo:
Purée, c'est la grande classe quand même !!
J'aime beaucoup les nouvelles musiques qui faisaient le charme du début, la nouvelle version a beaucoup de cachet ! Bravo à l'artiste !
Sinon, je retrouve avec une certaine émotion, les fameuses Citrouilles maudites ... :')
Super boulot les gars !
Développeur - Créateur Amateur de Jeux vidéos
Visitez ma page dédiée
Visitez mon espace Itch.io
Mon canal Discord
Merci Vetea !
Pour la musique, un "retour à la source", avec de la guitare, et le bon vieux thème (qui n'est pas sur cette vidéo, lui), était en effet souhaité, je verrai bien ce qu'en pensent les joueurs lorsque cette prochaine version sera entre leurs mains
Moi aussi j'aime beaucoup
Modérateur Delphi
Le guide du bon forumeur :
- Les règles du forum tu liras
- La FAQ et les tutoriels tu consulteras
- La fonction Recherche tu utiliseras
- Google tu vénèreras
__________
Rayek World : Youtube Facebook
Très sympa la vidéo Rayek !
Développeur - Créateur Amateur de Jeux vidéos
Visitez ma page dédiée
Visitez mon espace Itch.io
Mon canal Discord
Super, le test-vidéo, Rayek !
Et j'ai bien rigolé en t'écoutant pester sur le compagnon slime
Merci merci !
Un point sur l'avancée du jeu
____________
Dernièrement, j'ai bossé un peu sur l'optimisation du jeu, et j'ai enfin batché les particules des tirs (avant, chaque particule créée était une nouvelle entité, elles étaient triées (Z-sort), et chacune avait son draw call).
En résulte un (léger) gain de performance sur les scènes de stress.
Nous avons également ajouté 8 succès au jeu, ça va faire plaisir à ceux qui ont déjà fini à 100% la version actuelle .
Ça donne un total de 24 succès, et nous travaillons sur les nouvelles récompenses qui seront débloquées, donc de nouveaux objets.
D'ailleurs, puisqu'on parle de ceux qui finissent le jeu, dans la prochaine version, pour vous, il y aura, euh... enfin, bon, vous verrez.
Sinon, toujours pas de date de sortie prévue, évidemment, et elle ne sera pas compatible avec les sauvegardes (jeu, succès, scores, etc...) des jeux précédents, re-évidemment
____________
Image bonus d'un "test de charge"
ça serait bien que tu intègre les update, parce que redébloquer les succès, c'est parfois pénible et pas facile (je prend l'exemple pour débloquer la fée Scarlett, je l'ai eu un peu par hasard )
A la limite, pour ma part, les scores c'est pas grave, mais les succès, c'est plus gênant.
Faudra que tu m'expliques comment tu fais pour avoir 1800 PV par contre
Vivement la prochaine sortie en tout cas. Pour ma part, j'ai toujours pas fini la version de Démo (la dernière), je me fais toujours avoir par les croque mitaine (pénibles ces méchants). Personne n'aurai un truc pour les battre ceux-là ?
- Avant de poster, et http://www.developpez.com/sources/
- Lors du post, n'oubliez pas, si besoin les balises CODE => voir ici pour l'utilisation
- N'oubliez pas le
- N'oubliez pas le si la réponse vous a été utile !
Comme tout est susceptible d'être encore modifié, c'est pas évident...
Par exemple, les récompenses peuvent varier entre deux versions, ce que tu as eu en obtenant un succès lors d'une version ne correspond pas forcément à ce que tu auras dans la dernière.
(je prend l'exemple pour débloquer la fée Scarlett, je l'ai eu un peu par hasard )
je me fais toujours avoir par les croque mitaine (pénibles ces méchants). Personne n'aurai un truc pour les battre ceux-là ?
Sans dévoiler, ça marche aussi avec le blob explosif dans la salle des challenges (quand tu le lances sur un oeil, généralement, ça explose pratiquement tout) ? ou il faut le faire avec une arme ?
- Avant de poster, et http://www.developpez.com/sources/
- Lors du post, n'oubliez pas, si besoin les balises CODE => voir ici pour l'utilisation
- N'oubliez pas le
- N'oubliez pas le si la réponse vous a été utile !
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager