javascript - 如何构建一个查询,根据另一列对数据库中的分数进行平均

标签 javascript mysql

现在我有一个表“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

Sample SQL Fiddle

关于javascript - 如何构建一个查询,根据另一列对数据库中的分数进行平均,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45665561/

相关文章:

javascript - jquery resizable() 不工作(示例)

php - mysql 基于另一列的 AUTO_INCRMENT

sql - MySQL 触发器问题

javascript - 函数闭包

javascript - Webpack Angular 2 应用类型错误 : Cannot read property 'getOptional' of undefined

javascript - 从 javascript 客户端连接到 asp.net core signalR 服务器

javascript - 在javascript中响应

mysql - 如何在 SQL 中订购分隔的数字字符串

mysql - 包含 UTF8 字符的旧条目错误地保存在 UTF8 数据库中

mysql - 如何使用mysql获取以星期五为开始日期的一年中的一周