2016-12-17 4 views
0

Je suis désolé si ma question n'est pas pertinente. Parce que je ne suis pas expert de mysql.Mysql Calculer le pourcentage de lignes sélectionnées

J'ai des sondages sur mon site Web. Si quelqu'un vote mon sondage, je veux montrer les résultats du sondage à l'électeur.

Voici la structure DB;

surveysTableau (Comprend Nom de l'enquête Description et survey_id)

Surveys

survey_choicesTableau (Comprend Enquête chocies et liée à survey_id au tableau des enquêtes)

Survey Choices

J'essaie de calculer uniquement les choix de sondage visibles% pourcentage.

Si j'ai seulement 1 sondage, il calcule des résultats corrects. Mais si j'ai plus de 1 enquête, mysql calculer survey_vote_count valeurs entières de toute la table.

Voici ma requête MySQL;

SELECT 
survey_vote_id, survey_vote_name, survey_vote_count, survey_id, 
survey_vote_count * 100/t.s AS survey_percentage 
FROM survey_votes 
CROSS JOIN (SELECT SUM(survey_vote_count) AS s FROM survey_votes) t 
WHERE visibility = :visibility 
AND survey_id = :surveyId 
ORDER BY `survey_votes`.`order_id` ASC 

Comment puis-je calculer pour exemple seulement survey_id = 1 and visibility = 1% pourcentage = 100%?

Toute aide sera grandement appréciée.

Répondre

1

Vous devez ajouter la même condition à votre jointure croisée. Pour le moment, dans votre sélection, vous additionnez tous les survey_vote_count sans la même condition where (visibilité et survey_id)

+0

Bonjour, merci pour votre réponse, mais comment? SELECT SUM (survey_vote_count) SOMMAIRE FROM survey_votes WHERE survey_id = surveyId ET visibilité =: visibilité'? – HddnTHA

+0

Cela ressemble à peu près – TigOldBitties

+0

Cela a fonctionné, merci beaucoup (: – HddnTHA