Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Kueri SQL untuk menghitung berapa kali nilai tertentu muncul di beberapa baris

Ya. apa yang Anda miliki harus bekerja. (Anda perlu menambahkan alias pada tabel turunan, pesan kesalahan yang Anda dapatkan harus cukup jelas. Mudah diperbaiki, cukup tambahkan spasi dan huruf c (atau nama apa pun yang Anda inginkan) di akhir kueri Anda.

Ada satu peringatan mengenai potensi duplikat (VoterID, ElectionID) tupel.

Jika Anda memiliki batasan unik pada (VoterID, ElectionID), maka kueri Anda akan berfungsi dengan baik.

Jika Anda tidak memiliki batasan unik (yang melarang duplikat (VoterID, ElectionId) ), maka ada potensi seorang pemilih dengan dua (2) baris untuk ElectionID 1, dan tidak ada baris untuk ElectionID 2... untuk pemilih tersebut untuk diikutsertakan dalam penghitungan. Dan seorang pemilih yang memilih dua kali di ElectionID 1 dan hanya sekali di ElectionID 2, pemilih tersebut akan dikeluarkan dari penghitungan.

Menyertakan kata kunci DISTINCT di dalam COUNT akan memperbaiki masalah itu, mis.

HAVING COUNT(DISTINCT ElectionID) = 2

Saya akan menulis kueri secara berbeda, tetapi apa yang Anda miliki akan berhasil.

Untuk mendapatkan jumlah VoterID yang berpartisipasi dalam ElectionID 1 dan ElectionID2, untuk meningkatkan kinerja, saya akan menghindari penggunaan tampilan sebaris (MySQL menyebutnya tabel turunan). Saya akan meminta kueri menggunakan operasi GABUNG sebagai gantinya. Sesuatu seperti ini:

SELECT COUNT(DISTINCT e1.voterID) AS NumVoters
  FROM elections e1
  JOIN elections e2
    ON e2.voterID = e1.voterID
 WHERE e1.electionID = 1
   AND e2.electionID = 2

Jika Anda dijamin bahwa (voterID, ElectionID) unik, maka pemilihannya bisa lebih sederhana:

SELECT COUNT(1) AS NumVoters
  FROM elections e1
  JOIN elections e2
    ON e2.voterID = e1.voterID
 WHERE e1.electionID = 1
   AND e2.electionID = 2


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana Fungsi MID() Bekerja di MySQL

  2. Lebih memahami masalah `yield_per()` SQLalchemy

  3. Kueri SQL dari beberapa nilai dalam satu sel

  4. Optimasi Kinerja Kueri di MySQL

  5. SQL Query Untuk Membuat Tabel Di MySQL