MySQL の個別行合計
このクエリは、リンクに関する統計 (一意のクリック数、コンバージョン数、合計コンバージョン値) を計算することを目的としています。 DISTINCT 句を使用すると、各行がグループ内で 1 回だけカウントされることが保証されます。ただし、グループ化操作では重複がカウントされる可能性があるため、コンバージョン値を正しく合計することが課題となります。
解決策には、コンバージョン値を正しく集計する必要があります。それぞれの個別のコンバージョン ID は 1 つのリンク ID に正確に対応するため、コンバージョン値の合計を調整する必要があります。
変更されたクエリは次のとおりです。
SELECT links.id, count(DISTINCT stats.id) AS clicks, count(DISTINCT conversions.id) AS conversions, SUM(conversions.value) * COUNT(DISTINCT conversions.id) / COUNT(*) AS conversion_value FROM links LEFT OUTER JOIN stats ON links.id = stats.parent_id LEFT OUTER JOIN conversions ON links.id = conversions.link_id GROUP BY links.id ORDER BY links.created DESC;
この調整により、コンバージョンが確実に行われます。値は個別の行ごとに正しく合計されます。最終結果では、各リンクの必要な統計が得られます。
以上がMySQL でリンク統計のために個別の行の合計を計算するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。