[pgsql-jp: 39458] Re: 0 件でも表示
ゆむ
qqqz9b69 @ green.ocn.ne.jp
2008年 6月 21日 (土) 22:29:25 JST
私としては↓の方が初心者にはイメージが付きやすように思いますが如何でしょう。
SELECT code, name, COALESCE(cnt, 0)
FROM category
LEFT OUTER JOIN (SELECT code, count(*) AS cnt FROM article GROUP BY code
) USING(code)
ORDER BY 1;
結合してからの集計方法が分からなければ、
集計してから結合すれば良い。
--
ゆむ
↓↓↓↓↓↓↓↓↓ Original Message ↓↓↓↓↓↓↓↓↓
From: HOTTA Michihide <hotta @ net-newbie.com>
To: PostgreSQL Japanese Mailing List <pgsql-jp @ ml.postgresql.jp>
Date: Sat, 21 Jun 2008 13:57:29 +0900
Subject: [pgsql-jp: 39457] Re: 0 件でも表示
- - - - - - - - - - - - - - - - - - - -
> 堀田@長崎市です。
>
> 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>
↑↑↑↑↑↑↑↑ Original Message Ends↑↑↑↑↑↑↑↑
pgsql-jp メーリングリストの案内