Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Znajdź grupę rekordów, które pasują do wielu wartości

Możesz to zrobić za pomocą agregacji warunkowej:

select parentid 
from tablename
group by parentid
having sum(case when datavalue = 1 then 1 else 0 end) > 0 and
       sum(case when datavalue = 6 then 1 else 0 end) > 0

Innym sposobem jest użycie exists :

select distinct parentid
from tablename t1
where exists(select * from tablename where parentid = t1.parentid and datavalue = 1) and
      exists(select * from tablename where parentid = t1.parentid and datavalue = 6)

Innym sposobem jest liczenie odrębnych wystąpień:

select parentid 
from tablename
where datavalue in(1, 6)
group by parentid
having count(distinct datavalue) = 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. Pisanie hebrajskiego do mySql za pomocą JAVA

  2. Wybierz N poprzednich i M następnych pozycji wokół bieżącego identyfikatora pozycji

  3. Generowanie i odczytywanie kodów kreskowych

  4. gem mysql2 skompilowany dla niewłaściwej biblioteki klienta mysql

  5. Jak uzyskać różnicę między dwiema datami w zaokrągleniu do godzin?