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

Dapatkan semua catatan Level 1 yang hanya memiliki jumlah nilai tertentu di Level 2

Bergabunglah dengan tabel dengan subkueri yang menghitung jumlah baris untuk induknya, dan hanya pilih yang dengan jumlah yang Anda inginkan.

SELECT DISTINCT a.level1 AS Parent, a.level2 AS Child
FROM yourTable AS a
JOIN (SELECT level1, COUNT(DISTINCT level2) AS children
      FROM yourTable
      GROUP BY level1) AS b
ON a.level1 = b.level1
WHERE children = :child

Ganti :child dengan jumlah anak yang Anda coba cocokkan.

DEMO

Menggunakan COUNT(Column2) bukannya COUNT(*) akan mengabaikan baris di mana Column2 adalah NULL , jadi tidak akan menyertakan A100 .




  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:cara memilih catatan dengan tanggal terbaru sebelum tanggal tertentu

  2. SQL:Bantu saya mengoptimalkan SQL saya

  3. Buat tabel pesanan yang dikelompokkan berdasarkan user_id yang menjumlahkan jumlah produk

  4. Tidak dapat menginstal MySQL UDF

  5. Mysql pilih berdasarkan kecocokan terbaik dengan suka