dポイントプレゼントキャンペーン実施中!

mysql5.0.27です。
ビューを定義するところで、集約関数(例えば、count())の結果をビューの属性のひとつにするには、どのように書けばよいのか、教えてください。

例えば、table_Aとtable_Bから、hoge_viewというビューを作る場合。hoge_viewには属性が2つあって、1つはtable_Aのitemという属性をそのまま定義し、もう1つはtable_Bのdataという属性(数字とします)を全レコードにわたって足し合わせたものとしたい時、どのように書けばいいのでしょうか。

下のようなものを試してみたんですが、当然ですが、動きません。

CREATE OR REPLACE VIEW hoge_view (
item,
sum_data
) AS SELECT
table_A.item,
(count(table_B.data)) <---- ここがよくわかりません!
FROM table_A,
table_B;

A 回答 (1件)

・・・AS SELECT


table_A.item,
count(table_B.data)
FROM table_A,
table_B
where table_Aとtable_Bの結合条件 ←結合条件がないとcross joinになりますよ?例題だから、はしょっただけなのかな?
group by table_A.item;

グルーピングすればいいです。
    • good
    • 0
この回答へのお礼

早速のご回答、ありがとうございました。
いろいろやってみたのですが、group byをcountの後につけたりしていたので、ダメだったようです。
where句の後につけるのですね。勉強になりました。
元々のソースはもっと複雑で、簡略化した時に結合条件も一緒に削除してしまっていました。重ね重ね、ご指摘ありがとうございました。

お礼日時:2007/04/13 18:12

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!