问题描述
我真的在这里语法上苦苦挣扎...
我正在尝试获取以下数据:
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;