Mysql 合计,仅显示计数>;每个条目1个

Mysql 合计,仅显示计数>;每个条目1个,mysql,sql,Mysql,Sql,我有一个具有以下结构的表: |标签|物品名称|物品ID| |第15册《佛罗伦萨》 |故事|弗洛伦斯| 15 |书|茉莉花| 22 |故事|弗洛伦斯| 15 |bells | Florences | 15 |故事|茉莉花| 22 我只想在同一篇文章出现多个相同标记时显示,即此表上的查询结果将显示book,Florences,count(2)和story,Jasmine,count(2)。我曾尝试使用以下语句,但没有任何效果: 选择标签、物品名称、计数(*)作为计数 从articletagview

我有一个具有以下结构的表:

|标签|物品名称|物品ID| |第15册《佛罗伦萨》 |故事|弗洛伦斯| 15 |书|茉莉花| 22 |故事|弗洛伦斯| 15 |bells | Florences | 15 |故事|茉莉花| 22 我只想在同一篇文章出现多个相同标记时显示,即此表上的查询结果将显示
book
Florences
count(2)
story
Jasmine
count(2)
。我曾尝试使用以下语句,但没有任何效果:

选择标签、物品名称、计数(*)作为计数
从articletagview
按项目名称分组
按计数顺序说明

尝试以下操作:

SELECT Tag, Article_Name, COUNT( * ) AS count
FROM articletagview
GROUP BY Tag, Article_Name
ORDER BY count DESC

为此,您需要使用“HAVING”子句(),因为您使用的是聚合函数。比如说:

SELECT Article_Name, Tag, COUNT( * ) AS count
FROM articletagview
GROUP BY Article_Name, Tag
HAVING COUNT(*) > 1
ORDER BY count DESC

当使用聚合函数(如count)时,您可能希望按照select中的所有项进行分组,或者不将它们包含在select中,否则您将看到一些奇怪的结果。

我不明白为什么行
book,Florences
应该显示计数2,并且
story,Jasmine
您可以在
HAVING
子句中引用
count
别名,因为
HAVING
发生在
groupby
之后。另外,我认为你需要根据文章名和标签进行分组。重读这个问题,你会希望根据标签和文章名进行分组。编辑答案以反映这一点。我认为这需要一个
在某个地方有
子句,并检查您的
分组顺序。