我有一個表X如何返回非空行對於給定的ID - 蜂巢
ID A B -------------- 1 abc 27 1 - 28 2 - 33 3 xyz 41 3 - 07
我需要輸出
ID A B -------------- 1 abc 27 2 - 33 3 xyz 41
我想這樣做
max(A) OVER (PARTITION BY ID) as the_value
但它沒有工作。我仍然可以看到輸出表中的所有行。
我想知道是否有人遇到類似的情況,並有解決方案?
我有一個表X如何返回非空行對於給定的ID - 蜂巢
ID A B -------------- 1 abc 27 1 - 28 2 - 33 3 xyz 41 3 - 07
我需要輸出
ID A B -------------- 1 abc 27 2 - 33 3 xyz 41
我想這樣做
max(A) OVER (PARTITION BY ID) as the_value
但它沒有工作。我仍然可以看到輸出表中的所有行。
我想知道是否有人遇到類似的情況,並有解決方案?
你可以使用這個簡單的伎倆獲得了一些列刷爆全記錄:
select original.* from
(select ID,max(B) as B from Tbl group by ID) maxB
inner join
(select * from Tbl) original
on original.ID = maxB.ID and original.B = maxB.B
現在這當然是一個矯枉過正的代碼。你也可以這樣做:
select Tbl.* from
(select ID,max(B) as B from Tbl group by ID) maxB
inner join
Tbl
on Tbl.ID = maxB.ID and Tbl.B = maxB.B
,但第一個版本更是一個模板做任何你想要進一步列,字段,條件加入等
是的。這工作。我想在沒有加入的情況下實現這一目標,所以我正在探索是否可以使用Analytic UDF來完成此任務。謝謝Zahiro! – underwood
很高興幫助:) –
我不知道我理解你的。您的標題不能反映您想要的內容 - 您需要的輸出中的ID = 2爲' - ' –
' - '表示行中的空值:) – underwood