みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

オラクルSQL文のCOUNT関数について

SELECT
COUNT (*) AS XXXX
FROM AAA,BBB
WHERE AAA.AAA = BBB.BBB AND
・・・・
・・・・

やりたい事は、AAAテーブルだけのカウントをしたいのですが
現状、BBBのカウントもしてしまいます。

BBBはWHEREでAAAに対して比較だけを
行いたいのですが、この場合どうやったらいいのでしょうか。

投稿日時 - 2012-03-03 18:07:16

QNo.7340216

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.3

> BBBはWHEREでAAAに対して比較だけを行いたい

この一文から推測すると、結合しているのが間違いな気がします。
↓の様な形になるべきなのかも知れません。

SELECT
COUNT (*) AS XXXX
FROM AAA
WHERE AAA.AAA IN (SELECT BBB FROM BBB WHERE 何らかの条件) AND ・・・

他の方も指摘されている通り、もう少し情報を出して頂かないと正確な回答をすることは無理ですね。

投稿日時 - 2012-03-04 13:01:30

ANo.2

> BBBを結合しなくても、BBBとAAAが比較できるのなら
> それでいいのですが、そのやり方がわからない状況です・・・。

具体的にどんなテーブル構成であり,具体的にどんなSELECT文なのか,その提示なしに回答できる内容ではないです。

どうしてもAAAやBBBのように秘匿したまま質問せねばならないのなら,このような匿名Q&Aサイトで解決策が得られるかどうかは期待薄だと思います。

投稿日時 - 2012-03-03 23:23:26

ANo.1

> BBBはWHEREでAAAに対して比較だけを
> 行いたいのですが、この場合どうやったらいいのでしょうか。
なんのためにBBBを結合するのか不明ですが、
結合のためのWhere条件が不足してませんかね?
下手すると、AAAテーブルの実レコード数より大きな値になるかも。

AAA.AAA がユニークな値で間違いないなら、
COUNT (distinct aaa.aaa) AS XXXX
にしてみるとか。

投稿日時 - 2012-03-03 19:20:19

補足

> なんのためにBBBを結合するのか不明ですが、
> 結合のためのWhere条件が不足してませんかね?
> 下手すると、AAAテーブルの実レコード数より大きな値になるかも。
まさに、実レコード数より大きな値が返ってきています。
BBBを結合しなくても、BBBとAAAが比較できるのなら
それでいいのですが、そのやり方がわからない状況です・・・。

投稿日時 - 2012-03-03 20:40:11

あなたにオススメの質問