sql >> Database >  >> RDS >> Mysql

Rijen met dezelfde kolomwaarden retourneren in MySql

Dit is een voorbeeld van een "sets-in-sets"-query. Ik raad aggregatie aan met de having clausule, omdat dit de meest flexibele benadering is.

select score
from t
group by score
having sum(id = 2) > 0 and -- has id = 2
       sum(id = 4) > 0     -- has id = 4

Wat dit doet, is aggregeren op score. Dan het eerste deel van de having clausule (sum(id = 2) ) telt op hoeveel "2"en er per score zijn. De tweede is het optellen van het aantal "4"s. Alleen scores met een "2" en "4" worden geretourneerd.



  1. Case in Select-verklaring

  2. Gegevens uit een bestand kopiëren naar een CLOB in Oracle

  3. Selecteer waarden uit het XML-veld in SQL Server 2008

  4. listunagg functie?