Je travaille sur un site de concours où il y a deux types d'utilisateurs, les membres du site normal, et les juges. Chacun peut utiliser un outil de glisser-déposer pour commander les entrées d'un concours particulier dans l'ordre choisi. Une fois qu'ils ont terminé, les identifiants d'entrée correspondants sont associés à une valeur de classement qui peut ensuite être utilisée pour déterminer quelle entrée du concours a obtenu le score moyen le plus élevé. Le gagnant sera déterminé en faisant la moyenne des moyennes de chaque groupe. Ce que j'espère faire est de finir avec une table montrant CHAQUE entrée dans un concours particulier, avec le titre, et ensuite montrer 3 valeurs, avg_normal pour cette entrée, avg_juger pour cette entrée, puis ces deux valeurs ajoutées ensemble et divisé par deux, de sorte que les avg_normal et avg_juges représentent chacun 50% de l'avg_all. Enfin, trier la table par avg_all.MySQL trier par moyenne de deux moyennes
avg_all = ((avg_normal + avg_judge)/2)
Ils commandent entry_ids 1, 2, 3, 4, 5 dans l'ordre. La valeur de classement à partir de zéro alors:
entry_id, entry_ranking, author_id
1, 0, 1
2, 1, 1
3, 2, 1
4, 3, 1
5, 4, 1
je suis l'espoir de déterminer les moyennes sur une échelle de 1 à 100, de sorte qu'un rang d'entrée de 0 = 100 points, 1 = 90, 2 = 80, 3 = 70, et tout ce qui dépasse 4 = 5 points
Chaque utilisateur est attaché à un groupe dans une autre table, ils sont donc soit un utilisateur normal, ou un juge
Je veux être en mesure d'écrire une requête trouve
1.) La moyenne des votes des utilisateurs NORMAL
2.) Le vote utilisateur moyen JUDGE score de
3.) La moyenne du NORMAL & JUGE POINTAGE.
donc normal moyen utilisateur = 93,3333, moyenne Juge = 70, Total moyen = 81.66665
Merci aux réponses ci-dessous, les deux requêtes fonctionne comme un champion.
Merci pour votre aide ici, cela est sans aucun doute un pas de plus. Je ne sais pas si j'étais assez clair. Ce que j'espère faire est de finir avec une table montrant CHAQUE entrée dans un concours particulier, avec le titre, puis montrer les 3 valeurs, avg_normal pour cette entrée, avg_juger pour cette entrée, puis ces deux valeurs additionnées et divisées par deux, donc les avg_normal et avg_normal représentent chacun 50% de l'avg_all. Enfin, trier la table par avg_all. avg_all = ((avg_normal + avg_juges)/2) Est-ce plus clair? Merci beaucoup pour toute idée que vous pouvez fournir – noahkuhn
Mise à jour de la requête. J'espère que c'est ce que vous voulez. – lins314159
Semble plus proche, j'obtiens l'erreur suivante cependant: (# 1054 - Colonne inconnue 'avg_normal' dans 'liste de champs'). J'ai collé ma dernière requête dans la question originale avec les valeurs appropriées – noahkuhn