Niv*_*ivi 2 sql google-bigquery
我有多个成员行,并希望通过优先考虑值“是”来根据两列的值合并它们。
Name | Status1 | Status2
Jon | Yes | No
Jon | No | Yes
Run Code Online (Sandbox Code Playgroud)
我希望查询返回
Name | Status1 | Status2
Jon | Yes | Yes
Run Code Online (Sandbox Code Playgroud)
因此,如果该列有Yes一次,则必须为该Yes人分配,No否则必须分配。
下面是 BigQuery 标准 SQL
#standardSQL
SELECT Name, MAX(Status1) AS Status1, MAX(Status2) AS Status2
FROM `project.dataset.table`
GROUP BY Name
Run Code Online (Sandbox Code Playgroud)
您可以使用示例数据进行测试和使用
#standardSQL
WITH `project.dataset.table` AS (
SELECT 'Jon' Name, 'Yes' Status1, 'No' Status2 UNION ALL
SELECT 'Jon', 'No', 'Yes'
)
SELECT Name, MAX(Status1) AS Status1, MAX(Status2) AS Status2
FROM `project.dataset.table`
GROUP BY Name
Run Code Online (Sandbox Code Playgroud)
结果
Row Name Status1 Status2
1 Jon Yes Yes
Run Code Online (Sandbox Code Playgroud)