- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:相関副問い合わせについて)
相関副問い合わせとは?
このQ&Aのポイント
- 相関副問い合わせについて質問です。テーブルSalesに三つのカラム、ProductID、QuantityとSaleDateがあるとします。
- 各商品の日ごとの売上数量が商品毎の平均の売上数量より上の日を取り出すSQL文がSQL1のようになるようです。
- 相関副問い合わせの動きや役割について詳しく教えてください。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
> この相関副問い合わせの SQL1 だとテーブル s1 が ProductID 毎に評価され、 > ProductID が移り変わると副問い合わせのテーブル s2 でその s1.ProductID と同 > じ値毎に平均が計算されていくという動きをしているととらえているのですが、そ > れであっているのでしょうか? ちょっと違っていて、「 ProductID 毎に評価され」るのではなく、一件ずつ 評価されます(s1の一件ごとに平均値を算出する)。 そのため、こうした相関副問い合わせでは件数が増えると加速度的に計算 量が増えてしまう欠点を持っています。 こうした欠点をカバーするには SELECT s1.SaleDate FROM Sales AS s1, (select ProductID, AVG(Quantity) AVG_Quantity from Sales group by ProductID ) as s2 WHERE s1.ProductID = s2.ProductID s1.Quantity > s2.AVG_Quantity のようにインラインビューを用いるのも一つのやり方です。
お礼
回答ありがとうございます。 相関副問い合わせは、使う場所を間違うと時間のかかる処理になるということですね。実際に動かして使い慣れていないと、どの場面でなら使ってもよいかというのを学ばないといけなさそうですね。 ありがとうございました。