使用 COUNT 和 WHERE 时,如何计算每年占总数的百分比?
How do I calculate the percent of the total per year when COUNT and WHERE is used?
在SQL服务器上,我有一个查询
SELECT season, COUNT(DISTINCT player_name) AS 'No. of Foreign Players'
FROM nbastats
WHERE country <> 'USA'
GROUP BY season
它return这些结果
id
season
No. of Foreign Players
1
1996-97
9
2
1997-98
14
3
1998-99
22
4
1999-00
24
5
2000-01
40
6
2001-02
51
7
2002-03
62
我想做的是改为获取每个赛季外籍球员(占球员总数)的百分比。数据库只提供“国家”所以我假设我只能使用
WHERE country <> 'USA'
也许可以除以总数,但我不确定如何使用 WHERE。任何帮助将不胜感激!
我想你想要一个有条件的比率:
SELECT season,
COUNT(DISTINCT CASE WHEN country <> 'USA' THEN player_name END) * 1.0 / COUNT(DISTINCT player_name) AS foreign_ratio
FROM nbastats
GROUP BY season
在SQL服务器上,我有一个查询
SELECT season, COUNT(DISTINCT player_name) AS 'No. of Foreign Players'
FROM nbastats
WHERE country <> 'USA'
GROUP BY season
它return这些结果
id | season | No. of Foreign Players |
---|---|---|
1 | 1996-97 | 9 |
2 | 1997-98 | 14 |
3 | 1998-99 | 22 |
4 | 1999-00 | 24 |
5 | 2000-01 | 40 |
6 | 2001-02 | 51 |
7 | 2002-03 | 62 |
我想做的是改为获取每个赛季外籍球员(占球员总数)的百分比。数据库只提供“国家”所以我假设我只能使用
WHERE country <> 'USA'
也许可以除以总数,但我不确定如何使用 WHERE。任何帮助将不胜感激!
我想你想要一个有条件的比率:
SELECT season,
COUNT(DISTINCT CASE WHEN country <> 'USA' THEN player_name END) * 1.0 / COUNT(DISTINCT player_name) AS foreign_ratio
FROM nbastats
GROUP BY season