![](/img/trans.png)
[英]Query that counts total records per day and total records with same time timestamp and id per day in Bigquery
[英]Get latest balance by day per user via SQL (Bigquery)
我在下面有一個示例表:
+---------------------+---------+--------+
| timestamp | id | balance|
|---------------------+---------+--------|
| 2022-08-01 00:00:00 | 1 | 0.01 |
| 2022-08-01 00:00:00 | 2 | 0 |
| 2022-08-02 00:00:00 | 2 | 0.005 |
| 2022-08-02 07:00:00 | 2 | 0.5 |
| 2022-08-02 07:00:00 | 1 | 0.15 |
| 2022-08-03 00:00:00 | 1 | 0.02 |
| 2021-08-03 01:00:00 | 1 | 0.03 |
+---------------------+---------+--------+
我想要以下 output:
+---------------------+---------+--------+
| timestamp | id | balance|
|---------------------+---------+--------|
| 2022-08-01 00:00:00 | 1 | 0.01 |
| 2022-08-01 00:00:00 | 2 | 0 |
| 2022-08-02 07:00:00 | 2 | 0.5 |
| 2022-08-02 07:00:00 | 1 | 0.15 |
| 2021-08-03 01:00:00 | 1 | 0.03 |
+---------------------+---------+--------+
我想每天獲取每個 ID 的最新余額。 理想情況下,sql 將使用 window function,因為源數據表非常大(~900GB),我需要一些可以擴展的高效。
我花了很多時間試圖解決這個問題並一直卡住,任何幫助將不勝感激! 提前致謝
考慮以下簡單的方法
select * from your_table
qualify 1 = row_number() over id_day
window id_day as (partition by id, date(timestamp) order by timestamp desc)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.