我有这样的查询结果:
|bool Expression | Column A | Column B|
+----------------+----------+---------+
| true | 2 | 10 |
| false | 3 | 10 |
| true | 4 | 8 |
我需要B列的所有值,其中A的所有布尔表达式均为真。 在这种情况下,如果全部正确,则我需要的结果为[8,10]
预先感谢
答案 0 :(得分:2)
您可以按列b分组:
select columnb
from tablename
group by columnb
having min(boolexpression::int) = 1 and max(boolexpression::int) = 1
答案 1 :(得分:2)
我只会使用布尔聚合函数:
select b
from t
group by b
having bool_and(bool_expression);
顺便说一句,这将正确地处理NULL
布尔表达式-即b
的值将被过滤掉。
答案 2 :(得分:0)
为什么以下不是解决方法
# single P followed by numbers
df %>% select(matches("^P[0-9]+$"))
# single A followed by numbers
df %>% select(matches("^A[0-9]+$"))
# single capital letter followed by numbers
df %>% select(matches("^[A-Z][0-9]+$"))