[pgsql-jp: 35129] Re: テーブルの結合について教えてください

Atsushi Odagiri a.odagiri @ nskint.co.jp
2005年 3月 25日 (金) 17:37:11 JST


はじめまして、小田切ともうします。

> 2つのテーブル(userテーブルとdataテーブル)から結果を作成したいのです
> がどのようにすれば良いのかが分かりません。
> 同じテーブルの同じ列を複数回表示させることは出来ないのでしょうか。


きちんと試していませんが、こんなんでどうでしょう。

SELECT user.name, 
	one "count=1", 
	two "count=2", 
	three "count=3", 
	avg one + two + three/3
FROM user
JOIN
	(SELECT SUM(CASE count WHEN 1 THEN score ELSE 0 END) one,
		SUM(CASE count WHEN 2 THEN score ELSE 0 END) two,
		SUM(CASE count WHEN 3 THEN score ELSE 0 END) three,
		no
	FROM data
	GROUP BY no) score
ON
	user.no = score.no


> 
> ・userテーブル
> |no|name|
> | 1|aaa |
> | 2|bbb |
> 
> ・dataテーブル
> |no|count|score|
> | 1|    1|   50|
> | 1|    2|   60|
> | 1|    3|  120|
> | 2|    1|   70|
> | 2|    2|   80|
> 
> ・結果
> |name|count=1|count=2|count=3|avg|
> |aaa |     50|     60|    120|150|
> |bbb |     70|     80|      0|110|
> 
> 

/*
日本システム開発株式会社 第二事業部 IS部
小田切 篤 <Atsushi Odagiri>
email:a.odagiri @ nskint.co.jp
*/



pgsql-jp メーリングリストの案内