我正在使用以下代码:
SELECT l_name, f_name, user_id
FROM (SELECT a.l_name, a.f_name, count(*)
FROM shema.emp_table1 a, schema2.emp_table2 b
WHERE a.emp_id = b.emp_id2
AND b.office_num = '4017'
AND a.email IS NULL
HAVING COUNT (a.l_name) > 1
group by a.l_name, a.f_name
ORDER BY a.l_name, a.f_name)
GROUP BY l_name, f_name;
...我想要做的是返回用户姓氏、名字和用户 ID,如果数据库中的用户在姓氏上“匹配”(可能重复)。我遇到的问题是 USER_ID 字段对于每个用户都是唯一的......所以即使他们可能共享姓氏和名字,用户 ID 也是唯一的......这导致我的查询返回零行。如果我从搜索条件中删除用户 ID 字段,我会得到我正在寻找的列表:共享姓氏和名字的用户......(例如 Doe,John,计数为 4)。但即使我不希望针对用户 ID 进行查询,我确实希望它作为“返回字段”之一......但我似乎无法让它这样做。
任何帮助将不胜感激。我已经尝试了上述查询的许多不同变体,有/没有内部和外部计数,有/没有内部和外部的 user_id 等等,到目前为止,我没有找到我想要的东西。
我想要的输出是这样的:
L_NAME F_NAME USER_ID COUNT(*)
SMITH JOHN ABC123 2
SMITH JOHN BCD234 2
...虽然,现在我正在寻找它,查询可能无法正常工作,因为对于用户 ID 为 ABC123 的 Smith,John,“count(*)”不会是 2 ...“用户 ID”导致它比我想要的更困难。我需要写一个异常的块来满足这种请求吗?
谢谢!