jeu de décimales de la somme en sql
J'ai une base de données que j'utilise pour un concours de discussion, je suis en train de trier le classement pour voir où les écoles jouent dans les finales à la fin du semestre.
J'ai ce travail comme indiqué ci-dessous mais je ne suis pas en mesure de tour de la ptc de terrain, actuellement, il retourne jusqu'à 4 décimales par exemple 0.6667 si elles ont remporté 2 des 3 débats.
SELECT t.id,
t.name AS name,
SUM(t.id = d.winnerid) AS w,
SUM(t.id != d.winnerid) AS l,
SUM(t.id = d.winnerid)/(SUM(t.id = d.winnerid)+SUM(t.id != d.winnerid)) AS ptc
FROM debates AS d
JOIN teams AS t ON t.id IN (d.hostid, d.visitid)
WHERE d.visitid != -1
AND d.debatedate < CURDATE()
GROUP BY t.id
ORDER BY ptc DESC
Je crois que j'ai décimal(2,2) mais ici, je ne suis pas en mesure d'obtenir la syntaxe de droit, j'ai essayé un peu différente des choses comme
SUM(t.id = d.winnerid)/(SUM(t.id = d.winnerid)+SUM(t.id != d.winnerid)) AS ptc decimal (2,2)
Suis heureux de vous fournir plus d'informations sur les tables si nécessaire, mais je ne pense pas que c'est nécessaire?
- Voir Ma Réponse De Mise À Jour..
Vous devez vous connecter pour publier un commentaire.
de l'essayer.
Si vous obtenez pas de résultats, alors il doit y avoir une valeur null, essayez plutôt ceci.
Ici est une simple démo de :
Mise à jour :
ROUND(SUM(t.id = d.winnerid), 2)
à chaque fois, parce que si vous n'utilisez pas tous le temps, alors il peut être possible de ne pas obtenir les données attendues en raison de requête problème.