2016-04-29 31 views
1

私はラジオボタンのクリックをキャプチャし、選択した値に基づいてデータベースのカウンタをインクリメントするuseriInterfaceを取得しました。sqlを使用してポーリング結果を表示する方法

これはすべて問題なく動作しています。

私の質問は、結果のパーセント値をポーリングする方法は何ですか?

これは私のDB構造

CREATE TABLE `poll_results` (
    `name` varchar(50) DEFAULT NULL, 
    `count` int(11) DEFAULT NULL, 
    `modified_date` varchar(50) DEFAULT NULL 
) ENGINE=MyISAM DEFAULT CHARSET=latin1; 



Insert into poll_results (name,count,modified_date)values ('pollchoiceone' , 3 , now()); 
Insert into poll_results (name,count,modified_date)values ('pollchoicetwo' , 10 , now()); 
Insert into poll_results (name,count,modified_date)values ('pollchoicethree' , 7 , now()); 
Insert into poll_results (name,count,modified_date)values ('pollchoicefour' , 0 , now()); 

である、それはSELECTクエリを通じてそれを達成することは可能ですか?

http://sqlfiddle.com/#!9/e5e835/1

+0

何望ましい結果は次のようになりますか? – Strawberry

答えて

2

あなたcross joinできた票の全体数を合計して、2を分割するクエリを使用してテーブルからクエリ。例えば:

SELECT  name, `count`, `count`/`total_count` * 100 AS percetnage 
FROM  poll_results 
CROSS JOIN (SELECT SUM(`count`) AS `total_count` 
      FROM poll_results) t 

SQLFiddle example

+0

すばらしい答え、ありがとう。 – Pawan

1

事前に構築されたTOTAL_COUNTテーブルを使用して代替ソリューション:

SELECT name, `count`, `count`/t.total_count * 100 AS percentage 
FROM poll_results, (select sum(`count`) AS total_count from poll_results) t 

SQL Fiddle

関連する問題