質問 |
||
| 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 |
|
| |
| この回答へのお礼 | この回答にお礼をつける(質問者のみ) |