[英]SQL/BigQuery: case when statement over partition by
我有一张关于对话的桌子。 唯一对话 ID 有许多对话元素
conv_id | element_id | 作者类型 | 部分类型 |
---|---|---|---|
1 | 11 | 机器人 | 评论 |
1 | 12 | 机器人 | 评论 |
2 | 22 | 机器人 | 评论 |
2 | 23 | 机器人 | 评论 |
2 | 24 | 行政 | 笔记 |
3 | 32 | 机器人 | 笔记 |
我想为每个对话 id 写一个 case when 语句,-> 如果 author_type 是 'bot' 并且 part_type 是 'comment',那么 label 它在该对话 id 的所有行的新列中作为 'bot'。
所以结果将如下所示:
conv_id | element_id | 作者类型 | 部分类型 | 标签 |
---|---|---|---|---|
1 | 11 | 机器人 | 评论 | 机器人 |
1 | 12 | 机器人 | 评论 | 机器人 |
2 | 22 | 机器人 | 评论 | 机器人 |
2 | 23 | 机器人 | 评论 | 机器人 |
2 | 24 | 行政 | 笔记 | 机器人 |
3 | 32 | 机器人 | 笔记 |
例如,当 conv_id 为 2 时,即使其中一行不符合条件,它也会写入“bot”。
我试过这段代码,但它不起作用,并且错误消息是'over keyword must follow a function call'。
CASE
when
author_type = 'bot' and part_type = 'comment'
then 'bot'
over (partition by conversation_id)
end as tag
谢谢
我编辑了帖子并更改了一个条件。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.