![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?8acaa2e)
SQLで副で問い合わせたときグループバイやDISTINCTがエラーになってしまいます。
何故なのか検討がつきません。
同じデータを持つ様々なデータベースでやってますがどれもエラーになります。
オラクルやMYSQLやpostgreSQLです。
SELECT * FROM TableName
WHERE
担当 IN (SELECT 担当 FROM TableName WHERE 売上品 = '竹輪') AND
担当 IN (SELECT 担当 FROM TableName WHERE 売上品 = '胡瓜') AND
売上品 IN ('竹輪','胡瓜')
;
これは普通に出来ます。
これに対して…
SELECT distinct 担当, 商品, 売上品 from…かGroup By 担当, 商品とやっても何故かエラーが出ます…
何か間違ってますでしょうか?
No.1ベストアンサー
- 回答日時:
SELECT 担当, 商品, count(*) FROM TableName
WHERE
担当 IN (SELECT 担当 FROM TableName WHERE 売上品 = '竹輪') AND
担当 IN (SELECT 担当 FROM TableName WHERE 売上品 = '胡瓜') AND
売上品 IN ('竹輪','胡瓜')
GROUP BY 担当, 商品
;
とか普通に通ると思いますけど?
・DISTINCTが、他の何かと矛盾する。
・GROUP BYが、他の何かと矛盾する。
のだと思いますよ。
ちなみに、担当 IN (SELECT 担当 FROM TableName WHERE 売上品 = '竹輪') のような
WHEREに指定するメンバーシップ検査が、GROUP BYやDISTINCTの邪魔はしません。
No.2
- 回答日時:
とりあえず、エラーコードを載せましょう。
また、再現するコードを載せましょう。
> SELECT distinct 担当, 商品, 売上品
> from…か
> Group By 担当, 商品
> とやっても何故かエラーが出ます
これをみるかぎりだと、select とgroup byの項目が
あっていないだけに見えますが?
こんな感じ?
>select distinct empno,ename ,count(*) from emp group by empno
> *
>行1でエラーが発生しました。:
>ORA-00979: GROUP BYの式ではありません。
このORA-xxxxが重要です。このエラーコードがわからない限り、何のエラーだか第三者にはわかりません。
根本の問題として、distinctとgroup byの使用目的は異なります。
・distinctは重複を省く。
・group byは集計を行う。
目的(仕様)をはっきりさせれば、おのずと使用するsqlは決まります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) アクセス where句を使用して複数条件抽出をするには 2 2022/08/29 13:24
- MySQL 書籍の内容はまともでしょうか? 1 2023/01/22 03:07
- MySQL SQLです。下記の問合せを行うクエリを、PhpMyAdminで作成して実行せよ。 「昨年の各月の総降 1 2023/07/01 00:32
- Access(アクセス) アクセス 有効なフィールド名、または式として認識できませんのエラー 3 2022/08/19 11:53
- MySQL PhpMyAdminで作成して実行せよ。 東京23区を、皇居を中心とした4つのエリア(南東, 南西, 1 2023/06/11 11:58
- MySQL SQLです。こんな感じですか?あってますか? うまくいきません教えてくださいお願いします 1 2023/07/08 15:27
- MySQL うまくいきません教えてくださいお願いしますSQLです。クエリ構文です。 1 2023/07/07 12:39
- MySQL 下記の問合せを行うクエリを、PhpMyAdminで作成して実行せよ。 日本の全市区町村を人口密度が低 1 2023/06/18 19:51
- MySQL 共通点はあります。何が違うのでしょうか? 1 2023/01/27 05:22
- PostgreSQL PostgreSQL レコードからアイテム種類数を取得したい 2 2022/11/23 22:31
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
SQLの中上級者へのレベルアップ...
-
SQLについての質問
-
Oracleで文字列型の時間を引き...
-
batファイルでのSQL(oracle)...
-
64bit端末でのOLEDB接続に関して
-
データベースのカラムの型がCHA...
-
副問合せにLIKE文を使う方法は...
-
縦表示データを列として取得す...
-
sql(oracle)で質問です。 テ...
-
子供向けプログラミングのスク...
-
ワークテーブルって何?
-
oracleのimpdpでORA-39166
-
sqlで質問です。 Aテーブルは店...
-
SELECTによる表の変換方法を教...
-
開発対象となるアプリケーショ...
-
質問です。 下記のテーブルとデ...
-
Oracleですがsqlで質問です。 ...
-
sqlで質問です。 Aテーブルの登...
-
sqlで質問です。 Aテーブルの情...
-
SQLの書き方について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
サブクエリとDISTINCTGROUPBYの...
-
あいまい検索の仕方で・・・
-
GROUP BYを行った後に結合した...
-
Oracleでの文字列連結サイズの上限
-
Accessで別テーブルの値をフォ...
-
SELECTで1件のみ取得するには?
-
SQL文で右から1文字だけ削除す...
-
ADO VBA 実行時エラー3021
-
ファイル書込みで一行もしくは...
-
select insertで複数テーブルか...
-
Excelで、改行がある場合の条件...
-
select句副問い合わせ 値の個...
-
Excelでセルの書式設定を使用し...
-
実績累計の求め方と意味を教え...
-
レコードが存在しなかった場合
-
GROUP BYを使ったSELECT文の総...
-
使うべきでない文字。
-
【MYSQL】asでリネームしてwher...
-
Date型にNULLをセットしたい V...
-
アクセスでレポートの1印刷内...
おすすめ情報