SQL - 计算从查询生成的列的唯一值

时间:2011-09-13 00:34:58

标签: mysql sql

我正在查询记录来自热门社区网站软件的文件下载的表格。下面的SQL显示了每个用户下载的第一个文件。

SELECT
    dfid, dtime, file_name, MIN(dmid)
FROM
    downloads_downloads
JOIN downloads_files
ON downloads_downloads.dfid = downloads_files.file_id
GROUP BY
    dmid
ORDER BY
dtime,dfid

此查询中的数据包含数千行,如:

dfid    dtime       file_name   MIN(dmid)
3       1308147507  abc             108
455     1308149115  def             109
788     1308156732  ghi             113
7       1308156830  xyz             112
455     1308158073  def             114

我可以计算file_name的每个唯一实例来显示每个file_name值出现的次数吗?关于确切布局无关紧要。如果可能的话,我想在不创建表格并将数据插入其中的情况下执行此操作。例如,在上面的数据中,file_name“def”出现两次,因此会被计算两次。

1 个答案:

答案 0 :(得分:5)

您只需要执行以下操作:

SELECT file_name, COUNT(*) FROM downloads_downloads GROUP BY file_name;