我有一个mysql表(见下文),其中包含很多电子邮件地址。我想从此表中选择X(20)条目,但只从每个域中选择Y(2)。这可能与sql一起使用吗?如果我使用Group by
,则只会使用一个域。但它应该是可变的每个查询使用多少个域。
表格
id | email | domain
---|--------------|--------
1 | foo@bar.de | bar.de
2 | baz@bar.de | bar.de
3 | admin@bar.de | bar.de
4 | info@bar.de | bar.de
5 | bar@foo.com | foo.com
6 | baz@foo.com | foo.com
结果应为
ID:1,2,5,6
答案 0 :(得分:1)
如果您只想为每个域输入两个条目,则可以执行以下操作:
select t.*
from thetable t
where (select count(*)
from thetable t2
where t2.domain = t.domain and t2.id <= t.id
) <= 2;
如果你有一个更大的表,那么有更有效的方法。
我不知道X(20)
应该是什么意思。