私は非常に大きなテーブルを持っています。
各行には、uniqueId と itemId があります。特定の平均価格を下回るすべての商品を削除したいと考えています。私はこのようなものがうまくいくはずだと考えましたが、うまくいきません:
DELETE FROM items GROUP BY itemId HAVING avg(price) < ?
SQLite は不平を言います:
「グループ」の近く: 構文エラー
何が起こっているのでしょうか?
DELETE
FROM items as i1
WHERE i1.itemID in (
Select i2.itemID
FROM items as i2
GROUP BY i2.itemId
HAVING avg(price) < "user defined threshold" )
これを試して:
delete I
from items I join
(select itemId,avg(price) as price
from items
GROUP BY itemId)a
on I.itemId=a.itemId
where I.price<a.price
私はそれがこのようなものであるべきだと思う
DELETE FROM items WHERE itemId HAVING avg(price) < ?