每个条目的聚合,仅显示计数> 1

时间:2014-04-09 14:36:08

标签: mysql sql

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

|标签|文章名称| Article_ID |

|预订|佛罗伦萨| 15

|故事| Florences | 15

|预订|茉莉花| 22

|故事|佛罗伦萨| 15

|铃铛| Florences | 15

|故事|茉莉花| 22

我想仅在同一篇文章中出现多个相同标签时显示,即此表格上的查询结果会显示bookFlorencescount(2)和{ {1}},storyJasmine。我试过使用下面的声明,但无济于事:

count(2)

2 个答案:

答案 0 :(得分:1)

为此,您将需要使用“HAVING”子句(http://www.w3schools.com/sql/sql_having.asp),因为您正在使用聚合函数。所以,像:

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

使用聚合函数(如计数)时,您需要按选择中的所有项目进行分组,或者不将它们包含在选择中,否则您会看到一些奇怪的结果。

答案 1 :(得分:0)

试试这个:

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