は、ここで元のクエリです:HAVING句を付けずにこのSQLクエリを書き換えますか?
select flavor, max(price) mp
from Product
where flavor != 'chocolate'
group by flavor having avg(price) < 4
order by flavor;
私はHAVING句を使用せずに、このクエリを書き換えを担当しましたが、私はまだこのようなものを学んでいます、と私はこれを正確にアプローチする方法が本当にわかりません。ヒントとして、私はインラインビューを使用するように言われましたが、私は自分のクエリでエラーが発生し続けます。
select flavor, max(price) mp from (select flavor, price, avg(price) ap from Product where flavor != 'chocolate' group by flavor,price) prod where ap < 4 group by flavor order by flavor;
私はまだ私の結果で1つの余分な行を取得:
そして、ここでは、私が書いたクエリです。私の質問について同じではないのですか?
あなたがAVGでMAXを計算する必要があります。現在のように「価格」を選択すると、各商品の味のために効果的にランダムな価格が選択されます。とにかくHAVINGを使うことの問題は何ですか? – Uueerdo
avgを 'where'フィルタに入れてみましたか? –
クラスがサブクエリをよりよく理解し、インライン・ビューを理解するための練習です。私はついにそれを得ました、@トムは正しい考えを持っていました。 – Jordan