0

私は非常に大きなテーブルを持っています。

各行には、uniqueId と itemId があります。特定の平均価格を下回るすべての商品を削除したいと考えています。私はこのようなものがうまくいくはずだと考えましたが、うまくいきません:

 DELETE FROM items GROUP BY itemId HAVING avg(price) < ?

SQLite は不平を言います:

「グループ」の近く: 構文エラー

何が起こっているのでしょうか?

4

3 に答える 3

2
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" )
于 2012-08-22T06:27:46.110 に答える
1

これを試して:

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
于 2012-08-22T06:21:07.377 に答える
-1

私はそれがこのようなものであるべきだと思う

DELETE FROM items WHERE itemId HAVING avg(price) < ?
于 2012-08-22T06:20:56.770 に答える