Sql 如果多个经理来自同一城市,则显示经理详细信息
我有一个表Sql 如果多个经理来自同一城市,则显示经理详细信息,sql,oracle-sqldeveloper,Sql,Oracle Sqldeveloper,我有一个表经理(managerid、姓名、地址、城市、电话)。如果多个经理来自同一个城市,我必须显示城市、姓名和电话详细信息。 我的代码是: 选择m.city、m.name、m.phone 来自m经理 按m.name分组 计数(m.city)>1; 但这显示了第一行中的一个错误,即“不是表达式分组”。 请帮忙 一个简单的方法使用存在: select m.* from manager m where exists (select 1 from manager m2
经理(managerid、姓名、地址、城市、电话)
。如果多个经理来自同一个城市,我必须显示城市、姓名和电话详细信息。
我的代码是:
选择m.city、m.name、m.phone
来自m经理
按m.name分组
计数(m.city)>1;
但这显示了第一行中的一个错误,即“不是表达式分组”。请帮忙 一个简单的方法使用
存在
:
select m.*
from manager m
where exists (select 1
from manager m2
where m2.city = m.city and m2.managerid <> m.managerid
);
这很有效,非常感谢!但是你介意我问一下第二段代码的解释吗?@yaminir。它使用一个窗口函数(Oracle称之为分析函数)。
select m.*
from (select m.*, count(*) over (partition by city) as cnt_city
from manager m
) m
where cnt_city > 1;