2017-02-03 1 views
1

比較のために場所に固有の平均スコアを選択しようとしています 。私はおそらくそう行方不明平均SQLを使用して異なる場所の平均スコアを選択できません

SELECT l.location_name AS "Location Of Store", 
     f.score AS "Average Score" 
    FROM feedback AS f 
    JOIN employee AS e 
     ON f.qr_id = e.qr_id 
    JOIN location AS l 
     ON e.location_id = l.location_id 
    WHERE e.company_id = '1' 

Then the results I want to see however this isn't the average score

+ ----------------- + ------------- + 
| Location of Store | Average Score | 
+ ----------------- + ------------- + 
| London   | 9    | 
| Bedfordshire  | 2    | 
| Buckinghamshire | 5    | 
+ ----------------- + ------------- + 

をドロップすると声明

SELECT l.location_name AS "Location Of Store", 
     AVG (f.score) AS "Average Score" 
    FROM feedback AS f 
    JOIN employee AS e 
     ON f.qr_id = e.qr_id 
    JOIN location AS l 
     ON e.location_id = l.location_id 
    WHERE e.company_id = '1' 

results in

+ ----------------- + ------------- + 
| Location of Store | Average Score | 
+ ----------------- + ------------- + 
| London   | 5.3333  | 
+ ----------------- + ------------- + 

を使用してシンプルな私の指を置くことはできません!

答えて

1

"group by"句が欠落しているように見えます。また、私はあなたの最初の声明が正しくコンパイルされるとは思わない?異なるフィールドの値によって集約関数の結果文字通りグループの句で

SELECT l.location_nameAS "Location Of Store", AVG (f.score) AS "Average Score" 
FROM feedbackAS f 
JOIN employeeAS e 
ON f.qr_id= e.qr_id 
JOIN locationAS l 
ON e.location_id = l.location_id 
WHERE e.company_id = '1' 
GROUP BY l.location_name 

グループ:

はこれを試してみてください。集計関数はmin、max、count、avg、stddevなどと同じです。

+0

私はそれを逃したと信じられない、今日この画面を見過ぎて過ごした。上位の声明は、5.5の図に示すようにすべての結果の平均を見つけました。 –

+0

おい、それは起こる... – markg

関連する問題