从Oracle表获取值计数

Jan*_*eks 4 sql oracle

我有一张包含员工的桌子.由于我所工作的公司规模很大(> 3,000名员工),这很自然,其中一些名称相同.现在可以通过用户名区分它们,但由于网页需要与所有这些用户一起下拉,我需要在其名称中添加一些额外的数据.

我知道我可以先抓住所有用户,然后通过foreach运行它们并为每个用户对象添加计数.但这将是非常无效的.因此,我需要一个好的SQL查询,这将做类似的事情.子查询可以成为我需要的东西吗?

我的表看起来像这样:

name ----- surname ----- username

John       Mayer         jmaye

Suzan      Harvey        sharv

John       Mayer         jmay3
Run Code Online (Sandbox Code Playgroud)

现在,我认为如果查询返回相同的3个字段,并且如果有多个具有相同名称和姓氏组合的人,则返回布尔值.

vc *_* 74 5

将标志添加到Daniel的答案......

SELECT NAME, SURNAME, USERNAME, DECODE(COUNT(*) OVER (PARTITION BY NAME, SURNAME), 1, 'N', 'Y')
FROM
YOUR_TABLE;
Run Code Online (Sandbox Code Playgroud)

请注意,Oracle SQL不支持布尔值(叹息......)