[英]SQL Query on finding a share within a segment
我正在嘗試編寫一個 SQL 查詢,它通過 Binder 找出元素在一組中的百分比份額。 元素的百分比份額將在具有 Y 和 N 的區域上單獨計算。 這是樣本輸入和輸出。
我在這里創建了表格, db<>fiddle here
我不知道該怎么做,有人可以幫我嗎?
你似乎在描述這個計算:
select t1.*,
sum(value) over (partition by binder, zones) / sum(value) over (partition by binder)
from t1;
雖然想要的結果不同。
但是您想將其拆分為兩列:
select t1.*,
(case when zones = 'Y'
then sum(value) over (partition by binder, zones) / sum(value) over (partition by binder)
end),
(case when zones = 'N'
then sum(value) over (partition by binder, zones) / sum(value) over (partition by binder)
end),
from t1;
編輯:
你想要的表達是:
( count(*) over (partition by binder, zones, value) /
count(*) over (partition by binder, zones)
)
你也可以把它放在一列,但如果你想把它放在兩列,你可以使用上面的case
表達式。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.