簡體   English   中英

計算 SQL 中的組百分比

[英]Calculating group percentage in SQL

我有一個示例數據庫表,其中包含“團隊”和“結果”列,用於存儲團隊“A”和“B”的比賽結果“W”(獲勝)或“L”(松散):

team|result
A   |W
A   |W
A   |W
A   |L
B   |W
B   |W
B   |L
B   |L

我可以通過按團隊和結果分組來獲得每個團隊的勝/負數:

sqlite> select team,result,count(*) from results group by team,result;

A|L|1
A|W|3
B|L|2
B|W|2

但是,我還想獲得每支球隊的贏/輸百分比:

A|L|1|25
A|W|3|75
B|L|2|50
B|W|2|50

我沒有成功地弄清楚如何在 SQL 中執行此操作。我已經設法使用 python 程序以編程方式執行此操作,該程序通過 sqlite api 查詢數據庫,然后遍歷結果集並創建一個變量來存儲每個總計數分組然后計算百分比等

這個可以直接在SQL中實現嗎?

謝謝

我們可以使用SUM()作為解析 function:

SELCET team, result, COUNT(*) AS cnt,
       100.0 * COUNT(*) / SUM(COUNT(*)) OVER (PARTITION BY team) AS pct
FROM results
GROUP BY team, result;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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