Rumah >pangkalan data >tutorial mysql >Bagaimana Untuk Mengira Jumlah Nilai dalam SQL Sambil Memastikan Setiap Baris Dikira Sekali Sahaja?

Bagaimana Untuk Mengira Jumlah Nilai dalam SQL Sambil Memastikan Setiap Baris Dikira Sekali Sahaja?

Barbara Streisand
Barbara Streisandasal
2024-11-08 05:56:02728semak imbas

How To Calculate the Sum of a Value in SQL While Ensuring Each Row is Counted Only Once?

Mengumpulkan Baris dalam SQL Menggunakan SUM() untuk Nilai Berbeza

Dalam pertanyaan MySQL anda, anda ingin mengira jumlah nilai dalam jadual penukaran sambil memastikan setiap baris dikira sekali sahaja. Untuk mencapai matlamat ini, anda menggunakan kata kunci DISTINCT bersama-sama dengan fungsi SUM(). Walau bagaimanapun, anda menghadapi masalah apabila baris pendua menaikkan hasil SUM().

Untuk menyelesaikan isu ini, pertimbangkan perhubungan utama utama dalam jadual anda. Jika conversions.id ialah kunci utama jadual penukaran dan stats.id ialah kunci utama jadual statistik, maka setiap conversions.id adalah unik kepada satu links.id.

Berdasarkan pemahaman ini, anda boleh menyusun semula pertanyaan anda untuk mengira jumlah conversions.value bagi setiap conversions.id yang berbeza, dan kemudian membahagikan hasilnya dengan jumlah kiraan baris dalam setiap kumpulan links.id. Ini akan memberikan anda jumlah nilai berbeza yang dikehendaki.

Berikut ialah pertanyaan yang disemak:

<code class="sql">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;</code>

Pertanyaan ini sepatutnya mengira jumlah penukaran.nilai bagi setiap conversions.id yang berbeza dengan berkesan dalam setiap kumpulan links.id, memastikan setiap baris dikira sekali sahaja.

Atas ialah kandungan terperinci Bagaimana Untuk Mengira Jumlah Nilai dalam SQL Sambil Memastikan Setiap Baris Dikira Sekali Sahaja?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn