2010-10-18 44 views
1

我有一個包含兩個表的數據庫 - 其中一個州包含有關每個州所得稅的信息,第二個括號包含稅收括號每個狀態通過數字鍵連接到狀態。如何從一對多關係中獲得SQL的平均稅率

我想使用SQL來檢索每個狀態和每個狀態AVERAGE稅額金額在記錄集中輸出。例如:

STATES 

id name 
1 Alabama 

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

我該如何用最少量的SQL調用來做到這一點?

回答

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 
+0

這工作完美,謝謝! – MarathonStudios 2010-10-18 20:14:06

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

你想要做什麼是mathmatically不正確。您無法以這種方式平均稅率。您需要知道每個稅率有多少人才能獲得平均稅率。這個計算會給出6.67的值(四捨五入,假設您將稅率存儲在小數字段中而不是整數字段中(當然,您絕對不會對浮點數進行任何計算!))。

然而假設10,000,000人是安全率A,100萬人在稅率B和100人在稅率c。現在實際的平均稅率是5.09%。

+0

我知道你的意思,但我只需要一種簡單的方法來比較多個州的相關稅收支架 - 它不需要足夠精確就可以考慮人口。 – MarathonStudios 2010-10-18 20:10:43

相關問題