按表

时间:2018-03-20 16:13:53

标签: sql oracle

这是在甲骨文。表EmployeeName:

EmployeeNameID|EmployeeID|FirstName|LastName
1|1|ABC|DEF
2|1|ABC|EFG
3|1|ABC|DEF
4|2|XYZ|PQR
5|2|DEF|RST
6|3|XYQ|BRQ

我想知道有多少员工记录有多个名字。结果应该是:第一列是EmployeeId,第二列是它们拥有的不同名称。对于第一个结果,ABC | DEF重复,所以我只想算一次。

1|2
2|2
3|1

我尝试分组但不确定如何使用不同的名称要求。

2 个答案:

答案 0 :(得分:1)

试试这个:

SELECT EmployeeID, COUNT(DISTINCT CONCAT(FirstName,'-', LastName))
FROM EmployeeName
GROUP BY EmployeeID;

答案 1 :(得分:1)

我想你只想要count(distinct)

select employeeid, count(distinct firstname || ' ' || lastname)
from t
group by employeeid;