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

Apakah ada cara yang lebih sederhana untuk menemukan MODE(S) dari beberapa nilai di MySQL

Anda sangat dekat dengan permintaan terakhir. Berikut ini menemukan satu modus:

SELECT value, occurs
FROM (SELECT value,count(*) as occurs
      FROM t200
      GROUP BY `value`
      LIMIT 1
     ) T1

Saya pikir pertanyaan Anda adalah tentang beberapa mode:

SELECT value, occurs
FROM (SELECT value, count(*) as occurs
      FROM t200
      GROUP BY `value`
     ) T1
WHERE occurs = (select max(occurs)
                from (select `value`, count(*) as occurs
                      from t200
                      group by `value`
                     ) t
               );

EDIT:

Ini jauh lebih mudah di hampir semua database lainnya. MySQL tidak mendukung with atau fungsi jendela/analitik.

Kueri Anda (ditampilkan di bawah) tidak melakukan apa yang Anda pikirkan:

  SELECT value, occurs  
  FROM (SELECT value, count(*) as occurs
        FROM t200
        GROUP BY `value`
       ) T1
  HAVING occurs = max(occurs) ; 

having terakhir klausa mengacu pada variabel occurs tetapi menggunakan max(occurs) . Karena penggunaan max(occurs) ini adalah kueri agregasi yang mengembalikan satu baris, meringkas semua baris dari subkueri.

Variabel occurs tidak digunakan untuk pengelompokan. Jadi, nilai apa yang digunakan MySQL? Ini menggunakan sewenang-wenang nilai dari salah satu baris di subquery. Nilai arbitrer ini mungkin cocok, atau mungkin tidak. Tapi, nilainya hanya berasal dari satu baris. Tidak ada iterasi di atasnya.




  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 Anda mendapatkan pencarian boolean Fulltext Anda untuk mengambil istilah C++?

  2. Debugging PDO - Lihat Kueri SETELAH Bind?

  3. Cara Menemukan Item Daftar pada Posisi Tertentu di MySQL

  4. AVG() – Menghitung Nilai Rata-Rata Kolom di MySQL

  5. Bagaimana cara mempertahankan sesi PHP di beberapa domain di server yang sama?