![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
下記のようなグループ化した結果を表示するSQL文を作りました。
SELECT メーカコード FROM 部品表 GROUP BY メーカコード, 部品番号 HAVING ((部品番号)="BUHIN1")
これを実行するとちゃんと結果が出るのですが、その結果の件数を求めるにはどのようなSQL文を追加すれば宜しいのでしょうか? COUNT文を使うと出来そうなのですが、
SELECT メーカコード, COUNT(メーカコード) AS CNT FROM 部品表 GROUP BY メーカコード, 部品番号 HAVING ((部品番号)="BUHIN1")
とやるとメーカコードの個別件数が表示されてしまいます。
どうぞよろしくお願いします。
No.1ベストアンサー
- 回答日時:
こんにちわ。
Oracle であれば、こんな書き方ができるかと思います。
SQL> SELECT COUNT(*) FROM (SELECT メーカコード FROM 部品表 GROUP BY メーカコード, 部品番号 HAVING ((部品番号)='BUHIN1'));
でも件数を取得するのであれば、わざわざSQL 文を発行
するよりも、SQL%ROWCOUNT (PL/SQL) や、
sqlca.sqlerrd[2] (Pro*C) を使った方が DB に余計な負荷がかからなくて
良いと思います。
この回答への補足
早速のご回答ありがとうございます!
私の使用環境は、Access97 です。
教えて頂いた SELECT COUNT(*) FROM (ぐるーぷ化のSQL) をSQL Serverに対し実行するとFROM文の誤りです、と表示されてしまいます。
Accessならクエリで段組みすれば解決しますが、将来的にSQL Serverへ接続する事を考え、SQL文のみで解決しようと思っております。
現在はレコードセット取得後、RecordCountプロパティにてデータ件数を調べています。
COUNT文を使ったほうが負荷が少ないと思ったのですがそんな事もなさそうですね・・。
No.4
- 回答日時:
AccessやSQL Serverでできるかどうかわかりませんが、
Oracleの場合は以下のようなサブクエリーを使えます。
SELECT COUNT(*) FROM (
SELECT メーカコード
FROM 部品表
GROUP BY メーカコード, 部品番号
HAVING ((部品番号)="BUHIN1")
)
ご回答ありがとうございます!急な仕事でご返答が遅くなり申し訳ありません。
Accessですと上記のSQL文は実行できませんでした。
Accessのサブクエリーの使い方を調べてみます。
どうもありがとうございました。
No.3
- 回答日時:
ちょっと思ったのですが
SELECT メーカコード FROM 部品表 GROUP BY メーカコード, 部品番号 HAVING ((部品番号)="BUHIN1")
のクエリーを作成してそのクエリーを元に集計関数を使用したクエリーを作成するのはどうでしょう?
例えば
SELECT count(メーカコード) as カウント FROM 部品表 GROUP BY メーカコード, 部品番号 HAVING ((部品番号)="BUHIN1")
->クエリー1
select count(カウント) from クエリー1
質問のいとにそっています&スマートでないですかね...。
ご回答ありがとうございます!お返事が遅くなり申し訳ありません。
現在手元で確認できる環境ではない為実行できませんが、
Accessのサブクエリーの使い方を参考にさせていただきます。
どうもありがとうございました!
No.2
- 回答日時:
やりたいことは、
「部品番号が"BUHIN1"である部品(レコード)を持つメーカの数の抽出」
ということでよろしいでしょうか?
手元にAccessが無いので、確認できませんが、一般的には下記の様なSQLで抽出できると思います。
-----------------------------------------
SELECT count(DISTINCT メーカコード) FROM 部品表 WHERE ((部品番号)="BUHIN1");
-----------------------------------------
部品番号 = "BUHIN1" の条件はグループ化してもしなくても影響がないので、Where句でも問題ありません。
この回答への補足
ご回答ありがとうございます!
やりたいことはおっしゃる通りです。
教えて頂いたSQL文をAccess97で実行したところ、エラーになってしまいました。
試しに DISTINCT を COUNT の前に配置したところエラーは出なくなったのですが、正しい結果が出てきません。
グループ化しなくてもよい方法で再度考えてみたいと思います。ありがとうございます!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- MySQL SQLです。こんな感じですか?あってますか? うまくいきません教えてくださいお願いします 1 2023/07/08 15:27
- MySQL うまくいきません教えてくださいお願いしますSQLです。クエリ構文です。 1 2023/07/07 12:39
- PHP PHP MySql ページング 2 2022/09/20 06:38
- Access(アクセス) アクセス 有効なフィールド名、または式として認識できませんのエラー 3 2022/08/19 11:53
- Access(アクセス) アクセス where句を使用して複数条件抽出をするには 2 2022/08/29 13:24
- Visual Basic(VBA) access count数を変数に格納 2 2022/03/30 19:21
- PostgreSQL PostgreSQL レコードからアイテム種類数を取得したい 2 2022/11/23 22:31
- Visual Basic(VBA) VBA シート間の転記で、条件の追加コードの書き方について教えて下さい。 13 2023/02/26 09:31
- PHP コメント機能に返信欄を矢印で追加したい 1 2022/05/09 21:17
- MySQL SQLです。下記の問合せを行うクエリを、PhpMyAdminで作成して実行せよ。 「昨年の各月の総降 1 2023/07/01 00:32
このQ&Aを見た人はこんなQ&Aも見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
GROUP BYを使ったSELECT文の総件数を求める方法
SQL Server
-
ACCESS クエリで、グループ化したものをカウントしたい
その他(データベース)
-
GROUP BYを行った後に結合したい。
Oracle
-
-
4
SQL でグループ化したデータの件数を求めたい
SQL Server
-
5
group byで指定したカラム以外のカラムの値を取得したい
PostgreSQL
-
6
アクセスでテキストボックスを可視にしたい。
Access(アクセス)
-
7
exeファイルの中身を見ることは可能ですか?
フリーソフト
-
8
Accessフォームのテキストボックス内改行無効の方法
その他(データベース)
-
9
accessでクエリの結果だけをリンクしたい。
Access(アクセス)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
警察はスマホに保存した動画や...
-
データベースファイル(.db)を開...
-
Access フォーム上でコンボボッ...
-
AccessのSQLで、FROM句の構文エ...
-
私はシステム会社に務めている...
-
エクセルのフィルタ抽出が固まる
-
式を簡単にしてください。ACCES...
-
Notion@リレーション値の取得...
-
SQLデータベースへのリンクがあ...
-
シャープレジスター エラーコード
-
顧客データベースを作る場合、...
-
データベースの選定について 要...
-
ドリームメーカーってどうやっ...
-
Accessのフォームへ、記録者の...
-
エクセル
-
コンピュータ用語、データベー...
-
コンピュータ
-
ファイルが壊れて読み取れませ...
-
旧filemakerで和暦(令和など)...
-
QSL でのフォーム画面作成について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
項目名の制限について
-
MySQLで改行を含む文の登録のし...
-
SQLでグループ化した結果の件数...
-
オラクルSQLの累計値取得方法に...
-
ORA-01722: 数値が無効です
-
SQL文 2つのテーブルから、グ...
-
列名無効について
-
フォームで検索 エラーの表示...
-
改行コードを削除して取得する...
-
3つのテーブルの結合
-
各店舗毎の最大売上の項目を取...
-
インサート文での条件の指定に...
-
Accessで期間指定の売上合計と...
-
アクセス レポート作成のため...
-
データベースから抽出した一覧...
-
SQL抽出方法に悩んでいます。 S...
-
GROUP BYの記述方法について
-
SQL文のエラーについて
-
AccessVBA コードをスキップし...
-
Oracleでテーブルの結合について
おすすめ情報