テーブル全体と異なるIDで平均価格を取得するには、まず同じIDに基づいて重複データを除外する必要があります。次のクエリはIDごとに単価が高い単価行を選択します。あなたは、あなたは最低価格を選択したい場合は、個別のデータを持っていたら、それはa.price < b.price
select distinct a.*
from table1 a
left join table1 b on a.id = b.id
and a.price < b.price
where b.id is null;
a.price > b.price
には変更後、ID 3の200を取ることができ、あなたのサンプルデータを考慮ID 3の3つの価格100及び200があります適用
avg()
select avg(price)
from (select distinct a.*
from table1 a
left join table1 b on a.id = b.id
and a.price < b.price
where b.id is null
) t;
それとも
select avg(a.price)
from table1 a
left join table1 b on a.id = b.id
and a.price < b.price
where b.id is null;
DEMO rexteにおけるいくつかの書式設定の問題がありますあなたはここにいるのでfiddle link
サンプルデータと予想される結果を投稿してください。 –
あなたの質問は、このコメントを書いている時点では、全く答えられていません。予想される出力に沿ってサンプル入力を表示してください。 –
私は1つの列価格を持つ1つのテーブルがあります。そして、重複したデータが存在する可能性があるため、私は別のものを使用したいと思います。代わりに価格列に別のものを使用するのではなく、id列を別名として使用します。 –