Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/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
Sql server 查询问题_Sql Server - Fatal编程技术网

Sql server 查询问题

Sql server 查询问题,sql-server,Sql Server,我的数据库中有两个表,第一个是saveimage,其中包含每个图像的id和url;第二个是score,其中包含每个图像的id和分数。该分数不是唯一的-分数表中的每一行都是用户对一个图像的评分,因此一个图像可能有多行分数 现在我想找到数据库中得分最高的图像 我试过了 select * from saveimage where saveimage.id in (select top 100 id,SUM(avgscore) from score

我的数据库中有两个表,第一个是
saveimage
,其中包含每个图像的id和url;第二个是
score
,其中包含每个图像的id和分数。该分数不是唯一的-分数表中的每一行都是用户对一个图像的评分,因此一个图像可能有多行分数

现在我想找到数据库中得分最高的图像

我试过了

select * from saveimage 
where saveimage.id in (select top 100 id,SUM(avgscore) 
                       from score 
                       group by id  
                       order by SUM(avgscore) desc) 
这不起作用,因为

在选择列表中只能指定一个表达式


那我该怎么办呢?

子查询中不能有两列(您有id和sum(avgscore))

如果您试图找到每张图像的前100分,请尝试以下方法:

select * 
from saveimage 
where saveimage.id in 
  (select top 100 id 
   from score 
   group by id  
   order by SUM(avgscore) desc)

子查询中不能有2列(您有id和sum(avgscore))

如果您试图找到每张图像的前100分,请尝试以下方法:

select * 
from saveimage 
where saveimage.id in 
  (select top 100 id 
   from score 
   group by id  
   order by SUM(avgscore) desc)
这应该起作用:

SELECT TOP 100 img.id,
       img.url,
       SUM(sc.avgscore) as totalScore
FROM saveimage img
INNER JOIN score sc
ON img.id = sc.id
GROUP BY img.id, img.url
ORDER BY SUM(sc.avgscore) DESC
这应该起作用:

SELECT TOP 100 img.id,
       img.url,
       SUM(sc.avgscore) as totalScore
FROM saveimage img
INNER JOIN score sc
ON img.id = sc.id
GROUP BY img.id, img.url
ORDER BY SUM(sc.avgscore) DESC