两个或多个值匹配条件的情况?

时间:2013-08-18 06:21:15

标签: oracle sqlplus

我被问到这个问题;

如果县里的代表有相同的姓氏,你可以列出县名和代表的姓氏。

我有以下表格;

***REPRESENTATIVE***
REPI SURNAME    FIRSTNAME  COUNTY     CONS
---- ---------- ---------- ---------- ----
R100 Gorege     Larry      kent       CON1
R101 shneebly   john       kent       CON2
R102 shneebly   steve      kent       CON3

我似乎无法找出正确的方法来要求Orical显示一个存在两次且姓氏在同一个国家的姓氏。

我知道如何问某些东西是什么东西,但那并不会问我想知道什么。

1 个答案:

答案 0 :(得分:2)

听起来你想在做HAVING

之后使用GROUP BY子句
SELECT surname, county, count(*)
  FROM you_table
 GROUP BY surname, county
HAVING count(*) > 1;

如果你真的意思是“写了两次以上”,那么你想要的任何数据都不会HAVING count(*) > 2,但是你的样本数据都不会被返回。

总之,这个SQL语句说

  • 按姓氏和县将数据分组到存储桶中。姓氏和县的每个不同组合都是一个独立的桶。
  • 计算每个存储桶中的行数
  • 返回那些至少有两行
  • 的桶