sql >> Database >  >> RDS >> Oracle

ORACLE Selecteer Distinct retourneer veel kolommen en waar

Als het selecteren van alleen die 2 kolommen (naam en col1) voldoende is, kunt u het volgende gebruiken:

select 
    distinct x.name, x.col1
  from table_name x
  where x.col1 = 2;

of

select 
    x.name, x.col1
  from table_name x
  where x.col1 = 2
  group by (x.name, x.col1);  

Als je alle waarden nodig hebt, maar het niet uitmaakt welke voor de meerdere records die aan je criteria voldoen die je krijgt (bijv. Dan 2 2 1 of Dan 2 1 3), dan kun je dit gebruiken (het zal de eerste van die records opnemen op basis van volgorde criteria):

select xx.name, xx.col1, xx.col2, xx.col3
  from (select 
      x.name, x.col1, x.col2, x.col3, dense_rank() over (partition by x.name order by x.name, x.col1, x.col2, x.col3) rnk
    from table_name x
    where x.col1 = 2) xx
  where xx.rnk = 1;


  1. hoe toegang te krijgen tot de opdrachtregel voor xampp in Windows

  2. Veilige multicloud MySQL-replicatie implementeren op AWS en GCP met VPN

  3. Een trigger maken om een ​​sorteer-/volgordekolom bij te werken

  4. Realtime gegevensmaskering met behulp van triggers