按计数选择组

时间:2013-08-11 21:03:31

标签: mysql sql select

我有两个包含以下架构的表

files
------
id
name

第二个表

permission
-----------
id
file_id
downloads
code

现在我需要从下载表中选择前五个下载的文件,并注意由于下载代码file_id

code可能会多次出现

这就是我所拥有的

Select
  files.name,
  permission.downloads
From
  files Inner Join
  permission On permission.file_id = files.id
Order By
  permission.downloads Desc
Limit 5

我根据需要选择前五名,但重复文件名,无论如何,我可以总结每个文件的下载次数,因此不会重复文件名

1 个答案:

答案 0 :(得分:1)

你必须使用分组

select
  f.name,
  sum(p.downloads) as downloads
from files as f
  inner join permission as p on p.file_id = f.id
group by f.name
order By sum(p.downloads) desc
limit 5