私はSQLにはとても新しく、かなり基本的な問題に苦しんでいます。私はこれをいくつかの方法でやろうとしましたが、これまでのところ何も働いていません。PostgreSQL複数のカラムを使用してパーセンテージの数値を計算する
私のテーブルのtouristdataには、transportType、month、year、countの4つの列があります。例:
Month Year Transport Type Count
Nov 1992 Car 100
Nov 1992 Plane 250
Dec 1992 Car 200
Dec 1992 Plane 250
Jan 1993 Car 200
Jan 1993 Plane 200
実際には4つの異なる輸送タイプとそれ以上の月と年があります。
私は年間を通して使用された各輸送のパーセンテージを計算したいと思います。私はエラーを取得する。この形式では
WITH t1 as(
select transport, SUM(ncount) AS transportTotal
from touristdata
GROUP BY transport)
SELECT years, touristdata.transport, ROUND(100.0 *(transportTotal/SUM(ncount)))
FROM touristdata, t1
GROUP BY years;
:私の現在のコードは次のようになります
Year Transport Type Percentage
1992 Car 37.5%
1992 Plane 62.5%
1993 Car 50%
1993 Plane 50%
:
ERROR: column "touristdata.transport" must appear in the GROUP BY clause or be used in an aggregate function
LINE 5: SELECT years, touristdata.transport, ROUND(100.0 *(transpor...
しかし、私ので、私の所望の出力は、の線に沿って何かだろうtouristdata.transportとtransportTotalをGROUP BYに追加するとどちらもうまくいきません。私はそれを確かめようとしました。そして、1年ごとに各輸送タイプごとに4つのエントリーがありました。
私は前回の「GROUP BY years」の前にいなかったので、サブクエリを使ってやってみましたが、わかりませんでした。
誰かが私の頭の中で私がこれを本当に感謝してくれるのを助けることができたら!
おかげで、これは私のために働きました。 –