わかりましたので、私は次の行を持つデータベース、質問のためにどのような利用者の評価が含まれています(その評価スクリプト - これはQ20にすべて完成し、Q1のすべての方法です)があります。mysqlクエリ&PHP - これを行う方法?
id
sid
q1
q2
q3
q4
q5
...
q19
q20
をテーブルのイメージ:http://i.stack.imgur.com/SM70j.jpg
ここでは、例えば、行Aである:ここ
id 1
sid 2447
q1 1.5
q2 2.5
q3 0.5
q4 4.5
q5 3.5
...
q19 2.0
q20 2.0
は、例えば、行Bである:
id 2
sid 2447
q1 2.5
q2 1.5
q3 1.5
q4 3.5
q5 4.5
...
q19 1.0
q20 1.0
基本的に、私は次の処理を行い、問合せをしたい:
それはsid
によってデータやグループ、それをカウントし、私はQ20行にQ1のすべてをしたいが加算:
をので、Q1ますbe 4、q2は4、q3は2となります。
次に、これらの行の数を分けたいので、q1は2になり、q2は2になり、q3は1になります。 (平均数を得るため)。
我々はそう例えば、上でこの情報を表示するページがあります。宿泊のための
平均評価= row1['q1'] + row2['q1']/amt of rows
風景の平均評価= = row1['q3'] + row2['q3']/amt of rows
row1['q2'] + row2['q2']/amt of rows
平均評価
私は人々が評価する20の質問を持っていますが、これはすべてコード化されており、データはすべて保存されています。
これはページ上のデータを表示するためのものです。私は現在、それは私がちょうどtotal of q1 where sid = X, divided by the amt of rows for the average rating
をつかむためにMySQLのクエリをやって助けが必要
Avg rating for Accommodation
Avg rating for Scenery
Avg rating for Food
のように定めています。
は、私はその後、たとえば、変数にこれらを渡したい:
$r['question1'] = ...;
をだからあなたは愚かであるかのように私はそれを説明している場合、我々は単に
echo "Avg rating for Accommodation = " . $r['question1'];
申し訳行うことができますが、私は」私はそれが欲しいと私はできるようにできるように明確にしようとするので、私はこれを達成するための助けを得ることができます。
ご協力いただければ幸いです。その上
SELECT AVG(q1) as accommodation, AVG(q2) as scenery, AVG(q3) as food FROM my_table GROUP BY sid
と:あなたはMYSQLでこれを行うことができsid
上の行の平均値、グループを取得し、AVG
機能
SELECT sid,AVG(q1) AS q1,AVG(q2) AS q2,[...] FROM <RATING_TABLE> GROUP BY sid
例:ユーザー1とユーザー2を意味するので、それぞれ質問2:4と5をそれぞれ投票してください。だから、数学は合計得点/評価数=平均です。エコーその質問の平均スコア? – 422