この SQL クエリを正しく機能させるのに問題があります。
次のクエリがあります
SELECT apps.*,
SUM(IF(adtracking.appId = apps.id AND adtracking.id = transactions.adTrackingId, transactions.payoutAmount, 0)) AS 'revenue',
SUM(IF(adtracking.appId = apps.id AND adtracking.type = 'impression', 1, 0)) AS 'impressions'
FROM apps, adtracking, transactions
WHERE apps.userId = '$userId'
GROUP BY apps.id
すべてが機能していますが、クエリで生成している「インプレッション」列については、必要以上に大きな数値を取得しています。たとえば、このクエリに一致する 1 つのアプリの「インプレッション数」は 72 しかないはずですが、adtracking テーブルにそれほど多くの行がない場合でも、3,000 を超える値になります。どうしてこれなの?ここで何が問題なのですか?