如何从一对多关系中获得SQL的平均税率

时间:2010-10-18 19:32:17

标签: php sql mysql recordset

我有一个包含两个表的数据库 - 一个,州,包含有关每个州所得税的信息,第二个括号,包含通过数字键连接到各州的每个州的税号。

我想使用SQL来检索记录集中输出的每个州的每个州和AVERAGE税率。例如:

STATES

id name
1  Alabama

BRACKETS
id bracket amount
1  5%      1000
1  7%      2000
1  8%      10000

如何使用最少量的SQL调用来完成此操作?

3 个答案:

答案 0 :(得分:1)

SELECT s.name,Avg(b.bracket) as AverageTax FROM STATES s INNER JOIN BRACKETS b 
ON s.numerickey=b.numerickey
GROUP BY s.id,s.name,b.bracket

答案 1 :(得分:0)

SELECT AVG(`bracket`) FROM `BRACKETS` GROUP BY `id`

答案 2 :(得分:0)

您想要做的是数学上不正确。你不能用这种方式平均税率。您需要知道每种费率有多少人才能获得平均税率。此计算将给出6.67的值(舍入并假设您将税率存储在十进制字段而不是整数字段中(当然,您永远不会在浮点数上计算任何排序!)。

然而假设10,000,000人的入学率为A,1,000,000人的税率为B,100人的税率为c。现在实际平均税率为5.09%。