sql >> Database >  >> RDS >> Mysql

Krijg alle records van niveau 1 dat alleen een gespecificeerd aantal waarden heeft in niveau 2

Voeg een subquery toe aan de tabel die het aantal rijen telt voor de bovenliggende en selecteer alleen de rijen met het gewenste aantal.

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

Vervang :child met het aantal kinderen dat u probeert te matchen.

DEMO

COUNT(Column2) gebruiken in plaats van COUNT(*) negeert de rijen waar Column2 is NULL , dus het bevat geen A100 .




  1. Oracle PIVOT, twee keer?

  2. Tel de rijen met dezelfde ID in php

  3. PostgreSQL-fout bij het maken van een extensie

  4. Selecteer Gegevens door selectievakje klik op volgende en deselecteer de geselecteerde rij