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

标签 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"出现了两次,所以会算两次。

最佳答案

您只需要执行以下操作:

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

关于mysql - SQL - 计算查询生成的列的唯一值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7395596/

相关文章:

php - 为什么 PHP 中的查询内部查询比 2 个查询慢?

sql - 区分句子中的单词

Mysql与自定义表的Join问题

php - MySQL - 将 0 添加到少于 9 位的数字

php - 使用数组的 str_replace 是格式化一个人的姓氏的正确方法吗?

php - 数据不在表中的相关子查询

MySQL:按出现顺序创建序列

php - mysql 的凭据应该放在哪里?

mysql - Sql更新查询中添加浮点型字段

sql - 从查询返回列名的表中选择特定列的数据