[英]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.