簡體   English   中英

如何將重復值轉換為 bigquery 中的列?

[英]How to convert repeated values into columns in bigquery?

我有一個表,其中包含 3 個名為 ID、狀態、login_logout_time 的列。

ID 狀態 login_logout_time
24456 登錄 2022-01-03 10:00:00
24456 登出 2022-01-03 11:20:00
24456 登錄 2022-01-03 11:30:00
24456 登出 2022-01-03 13:00:00
24456 登錄 2022-01-03 13:30:00
24456 登出 2022-01-03 16:10:00
24456 登錄 2022-01-03 16:20:00
24456 登出 2022-01-03 19:00:00

我想要這樣的輸出

ID 登錄 登出
24456 2022-01-03 10:00:00 2022-01-03 11:20:00
24456 2022-01-03 11:30:00 2022-01-03 13:00:00
24456 2022-01-03 13:30:00 2022-01-03 16:10:00
24456 2022-01-03 16:20:00 2022-01-03 19:00:00

使用以下方法

select * except(grp)
from (
  select *, countif(status = 'loggedin') over(partition by id order by login_logout_time) grp
  from your_table
)
pivot (min(login_logout_time) for status in ('loggedin', 'loggedout'))         

如果適用於您問題中的示例數據 - 輸出是

在此處輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM