[pgsql-jp: 28926] Re: count(*)やsum の演算結果がゼロの時加算できない

Yu Ooasa you @ dearest.net
2003年 2月 4日 (火) 18:02:33 JST


Tue, 04 Feb 2003 17:30:10 +0900
	Dai NAKAMURA <dnimail @ sanix.co.jp> said:
>postgresql 7.3で(このVerに限らないでしょうが)、下記のような
>SQL文を書いた場合、副照会でsumやcountで集約された結果がゼロ
>だった場合、加算が出来ません。
>
>例えば、
>  select a, b, tmp1.c, tmp1.d, tmp1.c+tmp1.d
>    from (select count(*) as c, sum(d) as d
>          group by a,b) as tmp1
>    where ・・・
>この場合、count(*)かsum(d)の計算結果が0だった場合、nullと思うらしく、
>tmp1.c+tmp1.dの結果もnullになってしまいます。

なにをやりたいのかよくわかりませんが(そもそも例がおかしいし)

select * from test2;
 a | b | c 
---+---+---
 1 | 1 | 0
(1 row)

select a,b,c1+c2 as c3
  from (select a,b,count(*) as c1,sum(c) as c2 from test2 group by a,b) t;
 a | b | c3 
---+---+----
 1 | 1 |  1
(1 row)

select a,b,c2+c2 as c3
  from (select a,b,count(*) as c1,sum(c) as c2 from test2 group by a,b) t;
 a | b | c3 
---+---+----
 1 | 1 |  0
(1 row)

select version();
                               version                               
---------------------------------------------------------------------
 PostgreSQL 7.3.1 on i386-portbld-freebsd4.7, compiled by GCC 2.95.4

別におかしくないと思いますけど
--
Yu Ooasa  E-mail: you @ dearest.net



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