我试图在某些条件的基础上创建boolen值的输出。
输出:
例:我有3个规则/条件来自不同的表,它们彼此不相关。
规则1:
Select USER_NAME, ID from session_user where age > 25
规则2:
Select USER_NAME, ID from current_user where plan = 'gold'
规则3:
Select USER_NAME, ID from customer where group_name='managers'
我的输出应该是:
USER_NAME | ID | Rule 1 | Rule 2 | Rule 3
user1 1 true false true
user2 2 false true true
user3 3 true true true
如果 user1
正在传递规则1值应该是 true
如果他通过了 rule 2
那么 true
其他 false
.
解决方案:
SELECT dp.USER_NAME,
dp.ID,
CASE
WHEN dp.sex='F' THEN 'True'
ELSE 'False'
END AS Rule_1,
CASE
WHEN dp.sex='M' THEN 'True'
ELSE 'False'
END AS Rule_2,
CASE
WHEN dp.sex not in ('M','F') THEN 'True'
ELSE 'False'
END AS Rule_3
FROM user_details dp where dp.Organisation='007';
问题:
以上select语句是否是presto中有效的方法。?
如果没有,还有什么其他选择。
我对presto很陌生,所以在select中使用join很困难,当我连接多个表时,如何形成类似的输出?任何文件链接将有助于进一步了解。
与 CASE
我不能使用 COUNT
如果要查看,如何添加规则 COUNT
大于2(计数(*)>0)=真,否则为假。
我们能用吗 SubQuery
在 CASE
? 它会影响性能吗?
1条答案
按热度按时间dffbzjpn1#
prestodb支持布尔值,所以
CASE
表达是必要的:我不明白你剩下的问题和你的问题有什么关系。但是,stackoverflow问题仅限于一个问题。所以请随便问另一个问题。但是prestodb(和所有数据库一样)支持
CASE
表达。