2016-12-17 10 views
0

私の質問は無関係です。私はmysqlの専門家ではないからです。Mysqlは選択した行の割合を計算します

私のウェブサイトには調査があります。誰かが私のアンケートに投票した場合、アンケート結果を投票者に表示したい。

ここにDB構造があります。

surveys(調査名説明とsurvey_idを含む)

Surveys

survey_choices(調査Chocies及び調査表にsurvey_idと関連を含む)

Survey Choices

私は表示されている測量の選択肢%%だけを計算しようとしています。

私は1回のアンケート調査の場合、正しい結果を計算しています。しかし、私は1つ以上の調査を持っている場合、mysqlは全テーブルsurvey_vote_countの値を計算します。

これは私の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 

どのようにして計算できますか?survey_id = 1 and visibility = 1%パーセント=%100?

どのようなヘルプも大いに飾られます。

答えて

1

クロスジョインに同じ条件を追加する必要があります。現在のところ、あなたの選択では、すべてのsurvey_vote_countを同じ条件なしで合計します(visibilityとsurvey_id。

+0

こんにちは、お返事ありがとうございます。 =:visibility'? – HddnTHA

+0

右のように見える – TigOldBitties

+0

それは働いてくれてありがとうございます(: – HddnTHA

関連する問題