现在我有一个表“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 |
---------------
以后可能会有更多名称添加到数据库中,但是现在我一直专注于为一个名称执行此操作。我在一个名字上的进展如下:
'来自uniqueids的SELECT *,其中name ='bob'和SELECT AVG(score)'但这对我不起作用,它只是提到我的语法错误。即使它确实如此,它也只会用于bob,而我需要为每个名字完成它。
关于如何将此查询提供到我需要的地方的任何想法?
答案 0 :(得分: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
答案 1 :(得分:0)
选择名称,平均(得分)分数 来自uniqueids 按名称分组; 这有助于你得到理想的答案。