我正在查询一个记录从流行社区网站软件下载文件的表。下面的 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"出现了两次,所以会算两次。
最佳答案
您只需要执行以下操作:
SELECT file_name, COUNT(*) FROM downloads_downloads GROUP BY file_name;
关于mysql - SQL - 计算查询生成的列的唯一值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7395596/