现在我有一个表“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' and SELECT AVG(score)' 但这对我不起作用,它只是提到我的语法有错误。即使确实如此,它也只会为鲍勃做,而我需要为每个名字做这件事。
关于如何将此查询带到我需要的位置有什么想法吗?
最佳答案
这是一个非常标准的 SQL 查询。您只需将 avg
函数与合适的 group by
子句(如果您想将结果限制为具体名称)。
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
关于javascript - 如何构建一个查询,根据另一列对数据库中的分数进行平均,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45665561/