2017-08-15 9 views
0

これを手伝ってもらえますか?国名、各国のレコード数、国の総数を返す次のクエリがあります。どのようにして、総数に対する各国の%の列も返すことができます。理想的な出力は次のようなものになります。私はnumber/total AS percent試してみましたSQLで算術を実行

SELECT Country, COUNT(Country) AS number, (SELECT COUNT(Country) 
FROM[Customers]) AS total FROM [Customers] 
GROUP BY Country ORDER BY number DESC 

USA、25、100、25%...英国、28、100、28%...など...しかし、それはしませんでした作業。明らかに私は何か間違っている。

あるパーセンテージ以上の国を20%と言いたい国をフィルタリングしたいと考えています。

ありがとうございます!

+0

どのDBMSを使用していますか? –

+0

https://stackoverflow.com/questions/770579/how-to-calculate-percentage-with-a-sql-statement – MatSnow

答えて

1

エイリアスを持つサブクエリである派生テーブルを使用します。

select number/total AS percent 
from (
your query goes here 
) derivedTable 
+0

ありがとうございます!私はちょうど5、12、などのようなパーセントを得るために100で "数字"を掛けなければなりませんでした – rstreet

0

あなたは手動で行う必要があります:SQL以下

SELECT Country, COUNT(Country)*100/ (SELECT COUNT(Country) FROM[Customers]) AS total FROM [Customers] where total >20 
0

はあなたを助けるでしょう。

SELECT Country, COUNT(Country) AS number, (SELECT COUNT(Country) FROM[Customers]) AS total, ROUND(COUNT(Country) * 100.0/(SELECT COUNT(Country) FROM[Customers]), 1) FROM [Customers] 
関連する問題