次のような MySQL クエリがあります。
SELECT *, SUM(...some SQL removed for brevety) AS Occurrences FROM some_table AS q
WHERE criterion="value" GROUP BY q.P_id ORDER BY Occurrences DESC LIMIT 10;
結果を Occurrences>0 の行に制限したいと考えています。これは私には非常に簡単に思えますが、うまくいかないようです。WHERE や HAVING に関係なく、この制限を追加しようとすると、NO ROWS が返されます。テーブルに返されるべきデータがあることは確かです。私がやっていることを達成する方法を知っている人はいますか?
私はこれを試しましたが、まだうまくいきません。それでもうまくいかない理由はありますか?
SELECT *, SUM(...some SQL removed for brevety) AS Occurrences FROM some_table AS q
WHERE criterion="value" HAVING SUM(...some SQL removed for brevety)>0 GROUP BY q.P_id ORDER BY Occurrences DESC LIMIT 10;