我有一些公司和成员(member)的组合
Member Table
id company_id companymember
1 1 john
2 1 Tam
3 2 haya
4 1 lee
5 3 kih
6 3 wild
7 3 cream
8 3 earth
我要拾取的是
属于拥有两名以上成员的公司的 3 名成员姓名
我想要的是这样的
company_id 2 只有 1 名成员,第 3 行未被选中
company_id 3 有 4 个成员,因此未选择第 8 行
我的目标
1 1 john
2 1 Tam
4 1 lee
5 3 kih
6 3 wild
7 3 cream
我可以做到,先获取company_ids,然后 通过脚本循环每个 id 并获取。
但是这样,它会执行sql多次。
有没有什么好的方法可以通过一句SQL在MySql上做到这一点?
最佳答案
试试这个
select id,company_id,companyMember
from (Select id
,company_id
,companyMember
,Row_Number() OVER(PARTITION BY company_id ORDER By company_id) AS TotalCount
from MemberTable
) as Table1
where TotalCount <=3 and Company_id in(
Select Company_id
from MemberTable
group by Company_id
having COUNT(Company_id) >=3
)
order by id
关于mysql - 获取属于具有两行以上父类别的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45094622/