2017-08-13 77 views
0

現在我有一個表「uniqueids」,看起來像一個查詢:如何建立在一個分貝的平均分數基於另一列

+----+-----------------+------+-------+------------+ 
 
| id | uniqueid  | name | score | date  | 
 
+----+-----------------+------+-------+------------+ 
 
| 1 | bob1   | bob |  4 | 02-10 | 
 
| 2 | bob2   | bob | 49 | 02-15 | 
 
| 3 | bob3   | bob | 48 | 03-01 | 
 
| 4 | cari1   | cari | 76 | 02-15 | 
 
| 5 | cari2   | cari | 60 | 02-16 | 
 
| 6 | cari3   | cari | 71 | 03-05 | 
 
| 7 | john1   | john | 54 | 01-05 | 
 
| 8 | john2   | john | 56 | 02-13 | 
 
| 9 | john3   | john | 53 | 03-13 | 
 
+----+-----------------+------+-------+------------+

什麼,我要的是取每個名字的平均分數。所以,最後我得到的東西沿着線:

+----+--------- 
 
|name | score | 
 
+----+--------- 
 
|bob | 33.6 | 
 
|cari | 69 | 
 
|john | 54.3 | 
 
---------------

可能有多個名稱添加到數據庫後,但現在我一直專注於只是在做這個爲一個名字。我在一個名字上的進展是這樣的:

'SELECT * from uniqueids where name ='bob'和SELECT AVG(score)'但這對我不起作用,它只是提到我的語法錯誤。即使它做到了,它也只會爲了bob而做,而我會爲每個名字都做。

關於我能做些什麼來獲取此查詢到我需要它的任何想法?

回答

2

這是一個非常標準的SQL查詢。您只需將avg函數與合適的group by子句(以及where子句,如果要將結果限制爲特定名稱)結合使用。

select name, avg(score) as "average score" 
from uniqueids 
where name = 'bob' -- remove this line if you want averages for all names 
group by name 

Sample SQL Fiddle

+1

謝謝你,這是完美的。 – Milos

0

選擇名稱,AVG(評分)從uniqueids按名稱 組分數 ; 這將幫助您獲得所需的答案。