Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sqlite3:找到10个不同的人的平均分数_Sqlite - Fatal编程技术网

Sqlite3:找到10个不同的人的平均分数

Sqlite3:找到10个不同的人的平均分数,sqlite,Sqlite,我有两张桌子。一个人有身份证和分数。另一个有列:id、name。第二个表中的id与第一个表中的id匹配。一个名字可能有几个ID。我想找到n个平均分数最高的(不同的)名字 我可以找到10个不同的名字,我可以找到平均分数。但是,我不知道如何将这两种方法结合起来 选择id、id2、avg(分数)作为t1、t2中的avg_分数,其中t1.id=t2.id2按电影名称顺序分组。分数描述限制10 但我很确定这是错的 SELECT foo.name AS name, AVG(bar.score) AS avg

我有两张桌子。一个人有身份证和分数。另一个有列:id、name。第二个表中的id与第一个表中的id匹配。一个名字可能有几个ID。我想找到n个平均分数最高的(不同的)名字

我可以找到10个不同的名字,我可以找到平均分数。但是,我不知道如何将这两种方法结合起来

选择id、id2、avg(分数)作为t1、t2中的avg_分数,其中t1.id=t2.id2按电影名称顺序分组。分数描述限制10

但我很确定这是错的

SELECT foo.name AS name, AVG(bar.score) AS avgscore
FROM foo
  JOIN bar ON foo.id=bar.id
GROUP BY name
ORDER BY avgscore DESC
LIMIT 10

您缺少的主要功能是
AVG
aggregate函数,用于实际平均任何值。另外,您希望按名称分组(这确保每个名称只得到一行,并使
AVG
平均每个名称的分数),而
在这里有
是没有用的。

所以我想我已经成功了。名称的输出按字母顺序排列,正如我所希望的那样。这只是运气吗?或者我可以做些什么来保证我得到n个最高的平均分数,如果有任何平局,那么它会按字母顺序排列?@lars你可以
按分数顺序描述,命名ASC
来明确平局行为。