11

Postgresql での SQL クエリに問題があります。この select 句は、データベースに関する講義の例です。

1 select t.CourseNr, t.StudentsPerCourse, g.StudentCount, 
2        t.StudentsPerCourse/g.StudentCount as Marketshare
3 from (select CourseNr, count(*) as StudentsPerCourse
4       from taking
5       group by CourseNr) t,
6      (select count(*) as StudentCount
7       from Students) g;

問題は、2 行目の Marketshare 列です。StudentsPerCourse と StudentCount はどちらも整数型です。

これを Postgresql データベースで使用すると、Marketshare 列は int 型として評価されますが、ここでは float/numeric が必要です。Postgresql のドキュメントで SELECT 句を検索したり、グーグルで検索したりしても、データ型を指定する方法が見つかりませんでした。列の型を指定する (できれば標準 SQL) 方法はありますか、それともここで何か不足していますか?

4

1 に答える 1

10

ソース列の 1 つまたは両方を decimal/float/real/double/etc 型として CAST() します。

于 2008-10-09T13:43:30.517 に答える