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