[pgsql-jp: 39457] Re: 0 件でも表示
HOTTA Michihide
hotta @ net-newbie.com
2008年 6月 21日 (土) 13:27:13 JST
堀田@長崎市です。
From: s-koga @ pi.jp.nec.com
To: PostgreSQL Japanese Mailing List <pgsql-jp @ ml.postgresql.jp>
Date: Thu, 19 Jun 2008 23:12:18 +0900
Subject: [pgsql-jp: 39443] Re: 0 件でも表示
> いつもお世話になっております。
> 古賀@教育ビジネス部.NECソフトウェア九州です。
御社のLinux講習テキストには、公私共々お世話になっております m(__)m
> ↓これでいかがでしょう?
>
> SELECT DISTINCT
> category.code
> , name
> , count(*)
> FROM category LEFT OUTER JOIN article
> ON category.code = article.code
> GROUP BY category.code, category.name;
これだと、以下のようになりました。記事のない cat-3 についての件数
も1としてカウントされてしまうようです。
code | name | count
------+-------+-------
1 | cat-1 | 2
2 | cat-2 | 2
3 | cat-3 | 1
4 | cat-4 | 1
(4 行)
From: s-koga @ pi.jp.nec.com
To: PostgreSQL Japanese Mailing List <pgsql-jp @ ml.postgresql.jp>
Date: Thu, 19 Jun 2008 23:36:12 +0900
Subject: [pgsql-jp: 39444] Re: 0 件でも表示
> SELECT
> category.code
> , name
> , count(article.code)
> FROM category LEFT OUTER JOIN article
> ON category.code = article.code
> GROUP BY category.code, category.name
> ORDER BY 1
これでうまくいきました。ありがとうございます。
count(article.code) なんてのを思いつくようになるには、相当経験を
積まないといけないみたいです。。。
>>SELECT DISTINCT
>> category.code
>> , name
>> , count(*)
>>FROM category,article
>>WHERE category.code = article.code
>>GROUP BY category.code, category.name;
>>
>> code | name | count
>>------+-------+-------
>> 1 | cat-1 | 2
>> 2 | cat-2 | 2
>> 4 | cat-4 | 1
>>(3 行)
>>
>>こうすると、記事のない cat-3 については出力されません。
>>
>> code | name | count
>>------+-------+-------
>> 1 | cat-1 | 2
>> 2 | cat-2 | 2
>> 3 | cat-3 | 0
>> 4 | cat-4 | 1
>>(4 行)
>>
>>後者のように出力したいのですが、どうすればよいでしょうか?
>>JOIN を使うんじゃないかなーとは思ってるんですが…。
--
HOTTA Michihide <hotta @ net-newbie.com>
pgsql-jp メーリングリストの案内