ホームページ >データベース >mysql チュートリアル >MySQL でリンク統計のために個別の行の合計を計算するにはどうすればよいですか?

MySQL でリンク統計のために個別の行の合計を計算するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-04 00:07:03486ブラウズ

How to Calculate Distinct Row Summation in MySQL for Link Statistics?

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。