我有一個包含兩個表的數據庫 - 其中一個州包含有關每個州所得稅的信息,第二個括號包含稅收括號每個狀態通過數字鍵連接到狀態。如何從一對多關係中獲得SQL的平均稅率
我想使用SQL來檢索每個狀態和每個狀態AVERAGE稅額金額在記錄集中輸出。例如:
STATES
id name
1 Alabama
BRACKETS
id bracket amount
1 5% 1000
1 7% 2000
1 8% 10000
我該如何用最少量的SQL調用來做到這一點?
我有一個包含兩個表的數據庫 - 其中一個州包含有關每個州所得稅的信息,第二個括號包含稅收括號每個狀態通過數字鍵連接到狀態。如何從一對多關係中獲得SQL的平均稅率
我想使用SQL來檢索每個狀態和每個狀態AVERAGE稅額金額在記錄集中輸出。例如:
STATES
id name
1 Alabama
BRACKETS
id bracket amount
1 5% 1000
1 7% 2000
1 8% 10000
我該如何用最少量的SQL調用來做到這一點?
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
SELECT AVG(`bracket`) FROM `BRACKETS` GROUP BY `id`
你想要做什麼是mathmatically不正確。您無法以這種方式平均稅率。您需要知道每個稅率有多少人才能獲得平均稅率。這個計算會給出6.67的值(四捨五入,假設您將稅率存儲在小數字段中而不是整數字段中(當然,您絕對不會對浮點數進行任何計算!))。
然而假設10,000,000人是安全率A,100萬人在稅率B和100人在稅率c。現在實際的平均稅率是5.09%。
我知道你的意思,但我只需要一種簡單的方法來比較多個州的相關稅收支架 - 它不需要足夠精確就可以考慮人口。 – MarathonStudios 2010-10-18 20:10:43
這工作完美,謝謝! – MarathonStudios 2010-10-18 20:14:06