sqlite 在SQL中计算组百分比

qlvxas9a  于 2022-12-27  发布在  SQLite
关注(0)|答案(1)|浏览(200)

我有一个带有'team'和'result'列的示例数据库表,其中存储了球队'A'和'B'的比赛结果'W'(赢)或'L'(输):

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

我可以通过按球队和结果分组来获得每支球队的胜/负数:
sqlite〉选择团队,结果,从结果中计数(*)按团队分组,结果;

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中实现吗?
谢啦,谢啦

u4dcyp6a

u4dcyp6a1#

我们可以使用SUM()作为解析函数:

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

相关问题