[解決済み] 列「集約関数またはGROUP BY句に含まれていないため、選択リストでは無効です」。
2023-01-08 22:50:32
質問
カラムを表示したい
B
を表示したいのですが、クエリに追加すると以下のエラーが発生します。
列T2.B' は、集約関数にも GROUP BY 節にも含まれていないため、選択リストでは無効です。 集約関数または GROUP BY 句のいずれにも含まれていないため、select list では無効です。
私のコードです。
SELECT A, COUNT(B) as T1, B
FROM T2
WHERE ID=1
GROUP BY A
どのように解決するのですか?
言い換えると、このエラーは、SQL Server が以下のことを知らないことを告げているのです。
どの
B
をグループから選択する。
特定の1つの値を選択したい場合(例えば
MIN
,
SUM
または
AVG
を含む)その場合は適切な集約関数を使うか、あるいはすべての値を新しい行として選択したい(つまり
B
の中に
GROUP BY
のフィールドリスト)。
次のようなデータを考えてみましょう。
ID A B 1 1 13 1 1 79 1 2 13 1 2 13 1 2 42
クエリ
SELECT A, COUNT(B) AS T1
FROM T2
GROUP BY A
は返すだろう。
A T1 1 2 2 3
というのは、すべてうまくいっています。
しかし、次のような(不正な)クエリを考えてみてください、これはこのエラーを発生させます。
SELECT A, COUNT(B) AS T1, B
FROM T2
GROUP BY A
そして、その返されたデータセットが問題を示しています。
A T1 B 1 2 13? 79? 13と79の両方が別の行として?(13+79=92)? ...? 2 3 13? 42? ...?
しかし、次の2つのクエリでは、このことは明らかであり、エラーは発生しません。
-
集約を使用する
SELECT A, COUNT(B) AS T1, SUM(B) AS B FROM T2 GROUP BY A
は返すだろう。
A T1 B 1 2 92 2 3 68
-
カラムを追加して
GROUP BY
リストSELECT A, COUNT(B) AS T1, B FROM T2 GROUP BY A, B
は返すだろう。
A T1 B 1 1 13 1 1 79 2 2 13 2 1 42
関連
-
[解決済み] try catch ブロックで @@trancount > 0 を確認する必要があるのはどのような場合ですか?
-
[解決済み] 累積和の求め方
-
[解決済み] データセットに対するSSRSクエリの実行に失敗しました
-
[解決済み] SQL Serverのタイムスタンプ列をdatetime形式に変換する方法
-
[解決済み] SQL Server Management StudioでIntelliSenseが機能しない
-
[解決済み] SQL ServerでGROUP BYと一緒にDISTINCTを使用する
-
[解決済み] SQL Server リンクサーバーのクエリ例
-
[解決済み] 最初の行への結合方法
-
[解決済み] MySql でクエリ実行時に only_full_group_by に関連するエラーが発生する。
-
[解決済み] SELECTリストがGROUP BY句になく、非集計カラムを含む ... sql_mode=only_full_group_by と互換性がない。
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】フラットファイルの日付カラムで「キャスト指定に無効な文字値があります」を修正する方法とは?
-
[解決済み] TABLOCKとTABLOCKXの比較
-
[解決済み] SQL Server の更新コマンドでエラー - "現在のコマンドで深刻なエラーが発生しました".
-
[解決済み] COUNTフィールドが正しくないか、構文エラーです。
-
[解決済み] ミリタリータイムを使用するDatetimeフィールド - 標準時間のみが必要です。
-
[解決済み] 一括読み込みができません。オペレーティングシステムのエラーコード5(アクセスが拒否されました。)
-
[解決済み] SQL Serverのタイムスタンプ列をdatetime形式に変換する方法
-
[解決済み] データベースとスキーマの違い
-
[解決済み] 日付から年内の週番号を取得する
-
[解決済み】列が集約関数またはGROUP BY句のいずれにも含まれていないため、選択リストでは無効である理由【重複