【问题标题】:SQL Show value that appears more times and how many timesSQL 显示出现次数和次数的值
【发布时间】:2017-05-12 01:19:57
【问题描述】:

我正在尝试显示从电影表中出现更多次的值。

例如:

movie_id, tag_id, score
1         1       4
1         3       5
2         1       3
3         2       4
3         3       5

结果:

tag_id, times
1       2
3       2
2       1

该表有以下列:{movie-id, tag-id, score}。

如何检索出现次数和出现次数的 tag-id?

我尝试了以下方法,但它为每个 tag-id 显示相同的数字:

SELECT tagId, COUNT(tagId) AS ocurrence FROM scores GROUP BY tagId ORDER BY ocurrence DESC

【问题讨论】:

  • “出现”是什么意思?
  • 我已经用一个例子编辑了它。
  • 标记你的数据库管理系统

标签: sql count


【解决方案1】:

我想你正在寻找:

SELECT TAGID, COUNT(TAGID) 
FROM TABLENAME
GROUP BY TAGID
ORDER BY COUNT(TAGID) 

--or you could do a having clause where COUNT(TAG-ID) > 1

【讨论】:

  • 你确定这是正确的吗?在每个 tagId 中出现相同的次数。
  • 是的,这适用于我的 SSMS 环境。如果您使用的是其他 DBMS,则可能存在一些语法差异。但是,如果您继续获得相同的 tagid,也许您应该查看表中的数据并验证是否有不同的 tag id。
【解决方案2】:
SELECT tagId, COUNT(tagId) FROM scores GROUP BY (tagID) HAVING COUNT(tagId) >= ALL 
    (SELECT COUNT(tagId) FROM scores GROUP BY (tagId))

这也可以。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-04-15
    • 2019-02-05
    • 2017-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多