英文:
Aggregate values to FALSE if any of the value contains FALSE GROUP BY a column
问题
我得到了以下表格
FFId | PId | PDId | Emp | Operating |
---|---|---|---|---|
885 | 3022 | 816 | 1090A | true |
871 | 3022 | 816 | 1090A | false |
839 | 7465 | 7196 | 989A | true |
839 | 7465 | 7196 | 1094A | true |
782 | 3994 | 4290 | 1176A | true |
796 | 3994 | 4290 | 1176A | false |
我想将"Operating"值聚合为false,当具有相同的PId、PDId、Emp时,无论是true还是false。
所以期望的结果将是
FFId | PId | PDId | Emp | Operating | New Operating |
---|---|---|---|---|---|
885 | 3022 | 816 | 1090A | true | false |
871 | 3022 | 816 | 1090A | false | false |
839 | 7465 | 7196 | 989A | true | true |
839 | 7465 | 7196 | 1094A | true | true |
782 | 3994 | 4290 | 1176A | true | false |
796 | 3994 | 4290 | 1176A | false | false |
请问您能帮助我生成SQL查询吗?谢谢!
英文:
I got the following table
FFId | PId | PDId | Emp | Operating |
---|---|---|---|---|
885 | 3022 | 816 | 1090A | true |
871 | 3022 | 816 | 1090A | false |
839 | 7465 | 7196 | 989A | true |
839 | 7465 | 7196 | 1094A | true |
782 | 3994 | 4290 | 1176A | true |
796 | 3994 | 4290 | 1176A | false |
And I would like to aggregate the Operating value into false when there are either true or false with the same PId, PDId, Emp
So the expected result would be
FFId | PId | PDId | Emp | Operating | New Operating |
---|---|---|---|---|---|
885 | 3022 | 816 | 1090A | true | false |
871 | 3022 | 816 | 1090A | false | false |
839 | 7465 | 7196 | 989A | true | true |
839 | 7465 | 7196 | 1094A | true | true |
782 | 3994 | 4290 | 1176A | true | false |
796 | 3994 | 4290 | 1176A | false | false |
Could you please help me here to generate SQL query. Thanks!
答案1
得分: 2
考虑以下(BgQuery标准SQL)
select *,
logical_and(Operating) over(partition by PId, PDId, Emp) as New_Operating
from your_table
如果应用于您问题中的示例数据 - 输出是:
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论