[解決済み] サブクエリでのSQL GROUP BY
2022-02-11 17:39:10
質問内容
UNION ALLを使用して、2つのテーブルから1つのテーブルに結果を返すクエリーがあります。しかし、返されたデータセットでGROUP BYとORDER BYを実行する必要がありますが、多くのエラーが発生し、解決方法がわかりません。
以下は私のクエリです。
SELECT ProductID, Quantity
FROM BasketItems
UNION ALL
SELECT ProductID, Quantity
FROM OrderItems
すると、このような結果セットが返されます。
ProductID Quantity
15 2
20 2
15 1
8 5
5 1
その後、私は
GROUP BY
の上に
ProductID
フィールドを作成し、最後に
ORDER BY DESC
の上に
Quantity
フィールドを使用します。ですから、最終的な出力では、この特定の結果セットは最終的にこのような結果になります。
ProductID
8
15
20
5
この結果セットに対して、通常行っているようにクエリを実行することができます。
EDITです。
ORDER BY句を持つ結果に対してクエリを実行することはできないので、うまくいきません(私がエラー一覧で調べた限りでは)。
問題の詳細を知りたい方は、こちらをご覧ください。
この結果セットから、関連する商品テーブルから商品を取得したい。
SELECT * FROM Products WHERE ID IN (
SELECT ProductID
FROM
(
SELECT ProductID, Quantity
FROM BasketItems
UNION ALL
SELECT ProductID, Quantity
FROM OrderItems
) v
GROUP BY ProductID
ORDER BY SUM(Quantity) DESC
)
ところが、こんなエラーが出ます。ORDER BY 節は、TOP、OFFSET、または FOR XML が指定されていない限り、ビュー、インライン関数、派生テーブル、サブクエリ、および共通テーブル式では無効です。
商品の出力は、サブクエリで返された順番にする必要があります(数量順)。
解決方法は?
SELECT Products.*
FROM Products
INNER JOIN
(
SELECT ProductID, Sum(Quantity) as QuantitySum
from
(
SELECT ProductID, Quantity
FROM BasketItems
UNION ALL
SELECT ProductID, Quantity
FROM OrderItems
) v
GROUP BY ProductID
) ProductTotals
ON Products.ID = ProductTotals.ProductID
ORDER BY QuantitySum DESC
関連
-
[解決済み] SQLiteでどのようにピボットするか、つまり、長い形式で保存されたテーブルを広い形式で選択するか?
-
[解決済み] SQL ServerでSELECTからUPDATEする方法とは?
-
[解決済み] PHPでSQLインジェクションを防ぐにはどうしたらいいですか?
-
[解決済み] SQLテーブルで重複する値を検索する
-
[解決済み] SQL Server で複数行のテキストを 1 つのテキスト文字列に連結する方法
-
[解決済み] SQL Server テーブルにカラムが存在するかどうかを確認する方法は?
-
[解決済み] SQL Server の DateTime データ型から日付だけを返す方法
-
[解決済み] 各グループの最後のレコードを取得する - MySQL
-
[解決済み] SQL Serverでレコードを削除した後、IDシードをリセットする。
-
[解決済み】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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] テーブルのFROM句の項目がない [終了しました] 。
-
[解決済み】SQL Server: 無効なカラム名
-
[解決済み】sys.dm_exec_sql_textはどのように機能するのでしょうか?
-
[解決済み] アンピボットの主キーを含む対象コードページで、テキストが切り捨てられたか、1つ以上の文字が一致しない。
-
[解決済み] pg_restoreです。[archiver] 入力ファイルはテキスト形式のダンプであるように見えます。psql を使用してください。
-
[解決済み] mongoの外部キー?
-
[解決済み] SQLクエリで2つの列から値を引き算する
-
[解決済み] ORA-00920: 無効な関係演算子
-
[解決済み] SQLサーバーで文字列をsmalldatetimeデータ型に変換する際、変換に失敗しました(静的値を除く)。
-
[解決済み] PLS-00428: この SELECT 文では INTO 句が必要です。