如何解决BigQuery Case-对于col1,如果col 2等于“ a”和“ b”,则为True,否则= False
我真的在这里语法上苦苦挣扎...
我正在尝试获取以下数据:
Col1 Col2
001 a
001 b
002 a
003 b
004 a
显示如下
Col1 Col2 Col3
001 a True
001 b True
002 a False
003 b False
004 a False
我正在大量查询中,并且知道我的陈述不正确,但是正在查看以下内容:
case
when Col1 is not null then
case
when Col2 = 'a' and Col2 = 'b' then "True"
else "False"
end
Duplicates
我确定问题出在第一个条件上,但无法弄清楚如何处理。 有人可以给我一些指示吗?
解决方法
以下是用于BigQuery标准SQL
while True:
username = input("Enter your Username ")
password = input("Enter your Password ")
如果要应用于示例中的示例数据-输出为
#standardSQL
SELECT *,2 = COUNT(DISTINCT IF(Col2 IN ('a','b'),Col2,NULL)) OVER(PARTITION BY Col1) AS Col3
FROM `project.dataset.table`
,
假设您只有'a'和'b',则可以使用case
和窗口函数:
select t.*
( (col2 = 'a' and countif(col2 = 'b') over (partition by col1) > 0 or
(col2 = 'b' and countif(col2 = 'a') over (partition by col1) > 0
) as col3
from t;
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。