SQL:按没有主键的表中的计数进行筛选

时间:2018-09-21 21:16:41

标签: mysql sql group-by count primary-key

在如下表中:

  name    |    posts    |  comments
---------------------------------------
user1     |  page1      |  90
user1     |  page2      |  50
user1     |  page3      |  40
user2     |  page2      |  55
user2     |  page4      |  45
.         |  .          |  .
.         |  .          |  .
.         |  .          |  .

例如,找到具有2个以上帖子的用户的最佳方法是什么?

我通常这样做的方法是使用主键

进行分组
(for example) SELECT * FROM table
              GROUP BY PrimaryKey
              HAVING COUNT(name) > 2

但是在这种情况下不能这样做;有什么方法可以进行?

提前谢谢!

1 个答案:

答案 0 :(得分:1)

您似乎想要这个:

SELECT user_name
FROM table
GROUP BY user_name
HAVING COUNT(*) > 2;

您似乎对什么是主键有误解。您的查询版本将不返回任何行。为什么不?主键是 unique 。没有重复项。您想要user_name的副本,因此这似乎是适当的查询。