簡體   English   中英

SQL 按條件拆分組

[英]SQL break groups by a condition

假設我有這個表:

timestamp | is_break | data
----------+----------+------
 0        | 1        | 10
 1        | 0        | 20
 2        | 1        | 5
 3        | 1        | 10
 4        | 0        | 20
 5        | 0        | 30

如何通過 is_break 列將數據分組?

例如按組獲取數據的平均值,例如:

min_timestamp | avg_data
--------------+---------
 0            | 15        
 2            | 5
 3            | 20    

您可以使用聚合。 我們如何定義組? 使用is_break列上的窗口總和:

select min(timestamp), avg(date) avg_date
from (
    select t.*, sum(is_break) over(order by timestamp) grp
    from mytable t
)
group by grp

暫無
暫無

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

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