我无法以给定的方式编写此脚本。
我们假设我们有一个包含两列的表:entity
和attribute
。
attribute
具有静态数量的可能值,例如1到10.一个entity
每个attribute
值只能有一行(实体a
无法拥有属性8
两次)。
如何仅选择entities
只有attribute
值为2和6的两个>>import numpy as np
>>import math
>>mean = 2.5
>>deviation = math.sqrt(10)
>>s = np.random.normal(mean,deviation, 1000)
?
答案 0 :(得分:2)
我希望我能正确理解你的陈述:
select t1.entity
from your_table t1
join your_table t2
on t1.entity = t2.entity
and t2.attribute = 6
where t1.attribute = 2
and not exists (
select null
from your_table t3
where t3.entity = t1.entity
and t3.attribute not in (2,6)
);
以上不仅确保只为您提供同时拥有2
和6
属性的实体,而且还确保它除了那些属性之外没有任何其他属性。 #39;我从你的问题陈述中理解的。
修改强>
这是另一种更简单的方法,它依赖于您不能拥有重复的属性条目。
select entity
from your_table
where attribute in (2,6)
group by entity
having count(*) = 2;
如果您需要检查3个属性,只需调整IN
子句以添加第3个值,然后更改having count(*)
子句以检查3
而不是2