我希望在資料是連續的情況下將行合并為單行。我看了一下差距和島嶼,我知道我曾經在SQL Server中經常這樣做。我不知道解決方案是什么,但我記得我做了某種型別的ROW_NUMBER() over (Partition BY groupId, name, email, phone ORDER BY id) - ROW_NUMBER() over (ORDER BY id) seq與計算。我沒有成功地讓它作業。
下面是一個示例資料集:
期望的結果:
如果能得到任何幫助,我們將不勝感激。
uj5u.com熱心網友回復:
如果你只想要每組的最后一行,你可以使用lead():
select t.*
from (select t.*,
lead(id) over (order by id) as next_id。
lead(id) over (partition bygroupid, name, email, phone order by id) as next_id_grp
from t
) t
where next_id_grp is null or next_id_grp <>/span> next_id。
這是在看同一組中成員的下一個id和下一個id。 當這些不同時,那么該行就是該組中的最后一行。
這比row_number()方法更好,因為這通常需要一個聚合。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/332015.html
標籤:


