sql >> Databáze >  >> RDS >> Mysql

Najděte skupinu záznamů, které odpovídají více hodnotám

Můžete to udělat pomocí podmíněné agregace:

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

Dalším způsobem je použití 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)

Dalším způsobem je počítání různých výskytů:

select parentid 
from tablename
where datavalue in(1, 6)
group by parentid
having count(distinct datavalue) = 2



  1. Jak připojit Grails 3.0 k mé místní databázi Mysql

  2. Nahrání obrázku do databáze MySQL pomocí objektu Blob

  3. Můžete pomoci upravit dotaz nebo jiný dotaz pro získání očekávaného výsledku

  4. Problém převodu Oracle SQL DATE pomocí iBATIS přes Java JDBC