现在,我有一张“独一无二”的桌子,看起来像:
+----+-----------------+------+-------+------------+
| 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 *来自名称=‘bob’并选择AVG(得分)的唯一的,但这对我不起作用,它只是提到我的语法有一个错误。即使是这样,它也只对bob这样做,而我需要对每个名称都这样做。
对于如何将这个查询带到我需要的位置,我有什么想法吗?
发布于 2017-08-13 22:57:20
这是一个相当标准的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示例SQL Fiddle
发布于 2017-08-13 23:51:43
选择name,avg(得分)按名称从uniqueids组中选择;--这将帮助您获得所需的答案。
https://stackoverflow.com/questions/45665561
复制相似问题