[解決済み】列が集約関数またはGROUP BY句のいずれにも含まれていないため、選択リストでは無効である理由【重複
質問
エラーが発生しました。
列 'Employee.EmpID' は、選択リストでは無効です。 集約関数または GROUP BY 節のいずれにも含まれていません。
select loc.LocationID, emp.EmpID
from Employee as emp full join Location as loc
on emp.LocationID = loc.LocationID
group by loc.LocationID
この状況は、Bill Karwinが出した答えに当てはまります。
上記の訂正、ExactaBoxの答えに合う -。
select loc.LocationID, count(emp.EmpID) -- not count(*), don't want to count nulls
from Employee as emp full join Location as loc
on emp.LocationID = loc.LocationID
group by loc.LocationID
オリジナルの質問
SQLクエリの場合
select *
from Employee as emp full join Location as loc
on emp.LocationID = loc.LocationID
group by (loc.LocationID)
なぜこのエラーが発生するのか理解できません。私がしたいのは、テーブルを結合し、特定の場所にいるすべての従業員をグループ化することだけです。
自分の質問に一部説明がついたような気がします。もし良ければ教えてください。
同じ場所で働くすべての従業員をグループ化するために、まずLocationIDに言及する必要があります。
次に、各従業員 ID をその横に記載することはできませんし、記載することもできません。その代わりに、その場所で働く従業員の総数を記載します。つまり、その場所で働く従業員をSUM()する必要があります。なぜ後者の方法をとるのか、私にはよくわかりません。 これは、エラーの一部である "it is not contained in either an aggregate function" を説明するものです。
については、どのように説明していますか?
GROUP BY
の部分がエラーになるのでしょうか?
解決方法は?
次のような表があるとします。
T
:
a b
--------
1 abc
1 def
1 ghi
2 jkl
2 mno
2 pqr
そして、次のようなクエリを実行します。
SELECT a, b
FROM T
GROUP BY a
出力は2行になり、1行は
a=1
と、2番目の行に
a=2
.
の値はどうすればよいのでしょうか? b は、この2つの行にそれぞれ表示されるのでしょうか?それぞれのケースで3つの可能性があり、クエリではそれぞれのグループでbにどの値を選ぶかは明確ではありません。これは曖昧です。
これは シングルバリュー・ルール GROUP BY クエリを実行し、グループ化基準の一部でもなく、集約関数 (SUM、MIN、MAX など) にも含まれない列を選択リストに含めると、未定義の結果が得られることを禁止するものです。
直すとこんな感じでしょうか。
SELECT a, MAX(b) AS x
FROM T
GROUP BY a
これで、次のような結果にしたいことは明らかです。
a x
--------
1 ghi
2 pqr
関連
-
[解決済み] [GROUP BY句に含まれるか、集約関数で使用される必要があります。
-
[解決済み】SQLが単一グループのグループ関数でないこと
-
[解決済み】INTERSECTとINNER JOINは根本的に違うのか?[重複している]
-
[解決済み】単一のクエリで加重平均を計算する
-
[解決済み] pg_restoreです。[archiver] 入力ファイルはテキスト形式のダンプであるように見えます。psql を使用してください。
-
[解決済み] SQL Server - 'RETURN'付近の、条件が想定されるコンテキストで指定された、非ブール型の式。
-
[解決済み] SQL Server サブクエリが 1 つ以上の値を返しました。これは、サブクエリが =, !=, <, <= , >, >= のように続く場合は許可されません。
-
[解決済み] 集計を行わずに行から列へピボット移動する
-
[解決済み] マルチパート識別子をバインドできなかった
-
[解決済み] PLS-00428: この SELECT 文では INTO 句が必要です。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】集約関数のないTSQLピボット
-
[解決済み] バックエンドバージョンでは、データベースのダイアグラムやテーブルのデザインはサポートされていません。
-
[解決済み】警告。Aqua Data Studioの集約や他のSET操作でNull値が排除される。
-
[解決済み] FROM のサブクエリにはエイリアスが必要です。
-
[解決済み] SQLです。最初の出現箇所のみを返す
-
[解決済み] Ruby On Rails で NuoDB を使用して SQL コマンドを手動で実行する方法
-
[解決済み] ORA-01821: ISO 8601 のローカルタイム付き日付のフォーマットが認識されないエラー
-
[解決済み] マルチパート識別子をバインドできなかった
-
[解決済み] SQLサーバーで文字列をsmalldatetimeデータ型に変換する際、変換に失敗しました(静的値を除く)。
-
[解決済み] SQLで複数のGROUP BYを使用する場合とは?