[解決済み】SQLが単一グループのグループ関数でないこと
2022-02-06 16:25:38
質問
以下のSQL文を実行すると
SELECT MAX(SUM(TIME))
FROM downloads
GROUP BY SSN
ある顧客のダウンロード数の最大値を返しますが、その最大値が属する社会保障番号をselect文に追加して探そうとすると、以下のようになります。
SELECT SSN, MAX(SUM(TIME))
FROM downloads
GROUP BY SSN
以下のようなエラーが発生します。
単一グループのグループ関数ではありません
なぜこのエラーを投げるのか理解できません。ググってみると、以下のような動作が出てきました。
SELECT リストからグループ関数または個々の列式のいずれかを削除するか、リストされたすべての個々の列式を含む GROUP BY 節を追加します。
私が思うに、これは - グループ関数を削除すると、合計値が無効になります。 - 個々の列式 (SSN) を削除すると、最大値の合計が返されるだけです。 - 3番目の部分はよくわかりません。
どなたか正しい方向性を示していただけませんか?
-トメック
EDIT: このデータベースにおけるTIMEとは、ダウンロードされた回数のことです。
解決するには?
簡単に言うと、クエリの特定のSSNに対するSUM(TIME)は単一の値なので、MAXは意味がない(単一の値の最大値は意味がない)ので、異議を唱えているのです。
どのSQLデータベースサーバーを使用しているかは分かりませんが、次のようなクエリにしたいのではないでしょうか。
プレSELECT TOP 1 SSN, SUM(TIME)
FROM downloads
GROUP BY SSN
ORDER BY 2 DESC
これにより、合計時間が最も長いSSNと、その合計時間が分かります。
編集 - 同じ時間のものが複数あり、それらすべてが必要な場合は、次のようにします。
SELECT
SSN, SUM(TIME)
FROM downloads
GROUP BY SSN
HAVING SUM(TIME)=(SELECT MAX(SUM(TIME)) FROM downloads GROUP BY SSN))
関連
-
[解決済み] SQLエラーです。ORA-00922: オプションがないか無効です。
-
[解決済み] SQL ServerでSELECTからUPDATEする方法とは?
-
[解決済み] PHPでSQLインジェクションを防ぐにはどうしたらいいですか?
-
[解決済み] SQLテーブルで重複する値を検索する
-
[解決済み] SQL Server で複数行のテキストを 1 つのテキスト文字列に連結する方法
-
[解決済み] 各GROUP BYグループの最初の行を選択しますか?
-
[解決済み] 複数の列でgroup byを使用する
-
[解決済み] LINQのGroup by
-
[解決済み] 各グループの最後のレコードを取得する - MySQL
-
[解決済み】SQL Serverで既存のテーブルにデフォルト値を持つカラムを追加する
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Postgresのエラー。式として使用されるサブクエリによって返される複数の行
-
[解決済み】SQL ServerでIdentityカラムを更新する方法は?
-
[解決済み] INSERT ステートメントが FOREIGN KEY 制約と競合する - SQL Server
-
[解決済み] データ型 varchar の変換エラー
-
[解決済み] SQL Server - 'RETURN'付近の、条件が想定されるコンテキストで指定された、非ブール型の式。
-
[解決済み] ORA-00920: 無効な関係演算子
-
[解決済み] ora-06553 pls-306 'ogc_x' の呼び出しで引数の数または種類が誤っている。
-
[解決済み] "このSqlTransactionは完了しました。もう使用できません。"...設定エラー?
-
[解決済み] CLOBとNCLOBの違いは何ですか?
-
[解決済み] トリガーがコンパイルエラーで作成される