如果多个经理来自同一城市,则显示经理详细信息
To display manager details if more than one manager is from same city
我有一个tablemanager(managerid, name, address, city, phone)
。如果不止一位经理来自同一城市,我必须显示城市、姓名和 phone 详细信息。
我的代码是:
select m.city, m.name, m.phone
from manager m
group by m.name
having count(m.city) > 1;
但这在第一行告诉我一个错误,说“不是按表达式分组”。
请帮忙!
一个简单的方法使用exists
:
select m.*
from manager m
where exists (select 1
from manager m2
where m2.city = m.city and m2.managerid <> m.managerid
);
您还可以将 count()
用作 window 函数:
select m.*
from (select m.*, count(*) over (partition by city) as cnt_city
from manager m
) m
where cnt_city > 1;
我有一个tablemanager(managerid, name, address, city, phone)
。如果不止一位经理来自同一城市,我必须显示城市、姓名和 phone 详细信息。
我的代码是:
select m.city, m.name, m.phone
from manager m
group by m.name
having count(m.city) > 1;
但这在第一行告诉我一个错误,说“不是按表达式分组”。
请帮忙!
一个简单的方法使用exists
:
select m.*
from manager m
where exists (select 1
from manager m2
where m2.city = m.city and m2.managerid <> m.managerid
);
您还可以将 count()
用作 window 函数:
select m.*
from (select m.*, count(*) over (partition by city) as cnt_city
from manager m
) m
where cnt_city > 1;