[pgsql-jp: 40147] Re: countを含む結果と別テーブルを比較したい
Yoshiaki Yanagimoto
yanagimoto @ ask-art.jp
2010年 1月 20日 (水) 20:08:53 JST
柳本です。
select e.category, e.cnt, c.num
from
(select category, count(*) as cnt
from entry_table
group by category) e
left outer join category_table c
on (e.category = c.category)
order by e.category asc;
こんな感じでしょうか?
(2010/01/20 19:30), TAKENAKA, Akikazu wrote:
> 神奈川の竹中と申します。
> お世話になります。
>
> あるテーブルのcount(*)の結果と、別のテーブルのint型のデータを比較したいのですが、うまくいかずに困っております。
>
> 環境はこちらです。
> PostgreSQL 8.1.11 on i686-redhat-linux-gnu, compiled by GCC gcc (GCC)
> 4.1.2 20070626 (Red Hat 4.1.2-14)
>
> 下記のような2つのテーブルがあります。
> CREATE TABLE entry_table (
> entry_id INT,
> category TEXT
> );
> CREATE TABLE category_table (
> category TEXT,
> num INT
> );
>
> entry_tableでは、各entry_idについて"A"〜"Z"のいずれかのcategoryが登録されています。
> category_tableでは、各categoryについて何件のentryの登録があるかをnumに記録しています。
> しかし、numの値が正確でない可能性が発生したので、実際の件数と比較をしようと思いました。
>
> 実際の件数は、下記で取得できます。
> SELECT DISTINCT category, count(*)
> FROM entry_table
> GROUP BY category;
>
> ここで取得するcountの値を、下記で取得できるnumと並べて比較したいのです。
> SELECT category, num
> FROM category_table;
>
> 下記をはじめ色々と試してみたのですが、どうにもうまくいきません。
> SELECT DISTINCT e.category, count(*), num
> FROM entry_table e
> LEFT OUTER JOIN category_table c
> ON e.category=c.category
> GROUP BY e.category;
>
> 各categoryと、それに対応するcountとnumを同時に取得したいのですが、何か根本的に間違っているのでしょうか…?
>
> 初歩的なことかもしれず恐縮なのですが、どなたかご教授いただければ幸いです。
> よろしくお願いいたします。
>
>
pgsql-jp メーリングリストの案内