如何仅为特定列选择具有多个匹配的行?

sty*_*fle 3 sql

我不知道该怎么说这个问题,所以我举一个例子:

假设有一个名为tagged有两列的表:taggertaggee.SQL查询返回taggee多行中的(s)会是什么样的?也就是说,它们被任何标记了2次或更多次tagger.

我想要一个'通用'SQL查询,而不是只适用于特定DBMS的东西.

编辑:添加"由任何标记器标记2次或更多次."

Nic*_*ole 9

HAVING可以对聚合函数的结果进行操作.所以如果你有这样的数据:

Row    tagger  |  taggee
       --------+----------
1.     Joe     |  Cat
2.     Fred    |  Cat
3.     Denise  |  Dog
4.     Joe     |  Horse
5.     Denise  |  Horse
Run Code Online (Sandbox Code Playgroud)

听起来你想要,.

要获取多行的标记,您可以执行:

SELECT taggee, count(*) FROM tagged GROUP BY taggee HAVING count(*) > 1
Run Code Online (Sandbox Code Playgroud)

话虽这么说,当你说"只选择具有特定列的多次点击的行"时,你想要哪一?你想要第1行是Cat还是第2行?