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

MySQL:mengapa anggota maksimal N per kueri grup ini berfungsi?

Subquery yang berkorelasi mengembalikan jumlah orang dengan negara yang sama dan id yang lebih tinggi. Jadi jika Anda membandingkannya dengan < 2 Anda hanya akan memilih dua id tertinggi untuk setiap negara. Anda mungkin mendapatkan ide yang lebih baik tentang hal ini dengan melihat hasil pemilihan subkueri daripada menggunakannya sebagai batasan:

SELECT co.id, co.person, co.country,
    (
        SELECT COUNT(*)
        FROM person ci
        WHERE  co.country = ci.country      -- controlling grouping column
        AND co.id < ci.id                       -- controlling min or max 
    ) AS higher_ids
FROM person co

https://dbfiddle.uk/?rdbms=mysql_8.0&fiddle=9c3cfe469dd299b>

Perhatikan bahwa kecuali ada pengoptimalan yang secara khusus mencari pola ini, yang sangat saya ragukan, kueri ini akan menjadi O(N^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. mySQL mengonversi varchar ke tanggal

  2. PHP PDO menyisipkan beberapa (10000+) baris yang sama menggunakan bindParam. Latihan yang bagus?

  3. Apakah MS-SQL mendukung tabel dalam memori?

  4. Pilih semua tempat bidang berisi string yang dipisahkan dengan koma

  5. Bagaimana cara membuat installer setelah selesai dengan Aplikasi Java Desktop dengan MySQL DB?