簡體   English   中英

在段內查找共享的 SQL 查詢

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

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