ようこそ ゲスト さん、新規登録(無料)して気になる疑問を解決しませんか?

質問

QNo.3968899 SQLPLUSのGROUP BY句について
質問者:ryozyryozy Oracle9iのSQLPLUSにて、GROUP BY句で指定した列以外の列をSELECT文の選択結果に表示させたいだけなのですがうまくいきません。
SELECT 列A,列B,列C FROM テーブル1 A
INNER JOIN ( SELECT 列A,COUNT(*) FROM テーブル1 GROUP BY 列A HAVING COUNT(*) >= 2 ) B
ON A.列A = B.列A
「"B.列A"が無効識別子です」エラーが発生します。
何卒宜しくお願い致します。
困り度:
  • すぐに回答を!
質問投稿日時:
08/04/23 00:41
この質問に対する回答は締め切られました。

回答良回答20pt

ANo.2 ・ Bの別名はやめて、

SELECT 列A,列B,列C FROM テーブル1 A
where 列A in ( SELECT 列A,COUNT(*) FROM テーブル1 GROUP BY 列A HAVING COUNT(*) >= 2 ) ;

としてみてください。
回答者:auty
種類:アドバイス
どんな人:経験者
自信:自信あり
回答日時:
08/04/23 02:19
この回答へのお礼返事遅くなりましたがうまくいけました。
どうもありがとうございました。

回答良回答10pt

ANo.1 いま、Oracleが動かせる環境にいないので無試験ですが。

SELECT 列A,列B,列C FROM テーブル1 A
where A.列A in
( SELECT 列A FROM テーブル1 GROUP BY 列A HAVING COUNT(*) >= 2 ) B
;
だとどうなりますか?
OKならば、
SELECT 列A,列B,列C FROM テーブル1 A
INNER JOIN ( SELECT 列A FROM テーブル1 GROUP BY 列A HAVING COUNT(*) >= 2 ) B
ON A.列A = B.列A
でいけるかも。
回答者:bin-chan
種類:アドバイス
どんな人:一般人
自信:参考意見
回答日時:
08/04/23 00:52
この回答へのお礼この回答にお礼をつける(質問者のみ)