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