[pgsql-jp: 40146] countを含む結果と別テーブルを比較したい
TAKENAKA, Akikazu
akikazu @ equal1.net
2010年 1月 20日 (水) 19:30:30 JST
神奈川の竹中と申します。
お世話になります。
あるテーブルの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を同時に取得したいのですが、何か根本的に間違っているのでしょうか…?
初歩的なことかもしれず恐縮なのですが、どなたかご教授いただければ幸いです。
よろしくお願いいたします。
--
竹中 彰一 (TAKENAKA, Akikazu)
akikazu @ equal1.net | twitter.com/equal1
Skype: equal1.at | iPhone: +81-90-8477-3901
pgsql-jp メーリングリストの案内