DB初心者です。
DISTINCT句を使わずに、group by句を使って
重複データを除いたレコード総計を求めたいと思い、
下記の用にSQL文を書いたのですがうまくいきません。
oracleではなく、DB2を使っているのですがSQL文として
可能なのか教えていただければと思い質問を致しました。
<例>
テーブル名:商品DB
商品名
a
a
b
b
c
だったら、重複を除いたレコード数は3になりますが、
select count(*) from 商品DB group by 商品名
とすると
2
2
1
となり、それぞれの商品の合計数が出てしまうので
select count(*) from ( select 商品名 from 商品DB group by 商品名)
と副問合せ(でよいのでしょうか?)をしてみると
入力が予想されるトークンには "AS" が含まれている可能性があります。とエラーになってしまいました。
No.4ベストアンサー
- 回答日時:
できます。
だけではなんですのでオンラインでSQLをテストできるURLを付けておきます。要OTN登録
参考URL:http://otn.oracle.co.jp/training/index.html
ご回答ありがとうございました。こんなサイトがあったんですね!
用意されていたテーブルを利用して(copy_empというテーブルを使い、manager_idをgroup byしました)実行したところ、重複データを除いたレコード総数が求められました。Oracleと他のDBでこんなに違うのかと驚きました。
ただ、distinct句では18件、group by句では19件とgroup by句のほうで、NULL値もカウントしているようでしたので、もっといろいろ勉強したいと思います。本当にどうもありがとうございました。
No.3
- 回答日時:
手抜きしてうまく伝わってない可能性があるみたいので
select count(count(*)) from 商品DB group by 商品名;
です。
この回答への補足
早速のご回答ありがとうございます!教えていただいた方法で試してみたのですが、DB2では「列関数 "COUNT" のオペランドに、列関数、スカラー全選択、または副照会が含まれています。」、SQL Serverでは「集計やサブクエリを含む式に対して集計関数を実行することはできません。」というエラーがでてしまいました。
現在Oracleが手元にないので試せず、申し訳ないのですがOracleでは実行できますでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PostgreSQL PostgreSQL レコードからアイテム種類数を取得したい 2 2022/11/23 22:31
- Visual Basic(VBA) access count数を変数に格納 2 2022/03/30 19:21
- PHP PHP MySql ページング 2 2022/09/20 06:38
- MySQL SQLです。こんな感じですか?あってますか? うまくいきません教えてくださいお願いします 1 2023/07/08 15:27
- その他(データベース) pythonでsqlight勉強中、クエリー結果の利用法教えて下さい 1 2022/04/28 20:38
- Access(アクセス) アクセス 有効なフィールド名、または式として認識できませんのエラー 3 2022/08/19 11:53
- MySQL SQLです。下記の問合せを行うクエリを、PhpMyAdminで作成して実行せよ。 「昨年の各月の総降 1 2023/07/01 00:32
- MySQL うまくいきません教えてくださいお願いしますSQLです。クエリ構文です。 1 2023/07/07 12:39
- Access(アクセス) アクセス where句を使用して複数条件抽出をするには 2 2022/08/29 13:24
- Visual Basic(VBA) 【ExcelVBA】Powerクエリーでいうピボット解除と同じ処理をVBAで 4 2022/07/06 17:09
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
あるカラムのMAX値+1をINSERTし...
-
複数条件に当てはまる行の抽出...
-
テーブル結合について、下記SQL...
-
SQLPLUSにて演算子を使う方法と...
-
Oracleでの文字列連結サイズの上限
-
GROUP BYを行った後に結合した...
-
SQL文で右から1文字だけ削除す...
-
GROUP BYを使ったSELECT文の総...
-
Accessで別テーブルの値をフォ...
-
SELECTで1件のみ取得するには?
-
実績累計の求め方と意味を教え...
-
MERGE文を単体テーブルに対して...
-
DataGridViewの、選択されてい...
-
MySQLで MAX()とGROUP BYを使う...
-
select句副問い合わせ 値の個...
-
ファイル書込みで一行もしくは...
-
チェックボックスの項目をDBにi...
-
アクセスで「空き番」の確認
-
Access でレコードセレクタが押...
-
SQLの集計で「全て」の合計も表...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
レコードが選択されないときの...
-
複数行を1行にするSQL
-
sqlのwhereで指定した条件の前...
-
あるカラムのMAX値+1をINSERTし...
-
外部結合に条件をつけたい
-
ループの仕方
-
Oracle8iでSQL文の引数について
-
テーブル結合について、下記SQL...
-
sumやcount関数について
-
PL/SQLの基礎的な質問ですが・・
-
SQLPLUSにて演算子を使う方法と...
-
複数条件に当てはまる行の抽出...
-
distinct句を使わずレコード総...
-
GROUP BYを行った後に結合した...
-
Accessで別テーブルの値をフォ...
-
Oracleでの文字列連結サイズの上限
-
SELECTで1件のみ取得するには?
-
SQL文で右から1文字だけ削除す...
-
GROUP BYを使ったSELECT文の総...
-
select句副問い合わせ 値の個...
おすすめ情報