sql >> Databáze >  >> RDS >> Database

Jak nezobrazovat duplikáty v SQL

Problém:

Chcete zobrazit neduplicitní záznamy v SQL.

Příklad:

Naše databáze obsahuje tabulku s názvem City s údaji ve sloupcích id , name a country .

id jméno země
1 Madrid Španělsko
2 Barcelona Španělsko
3 Varšava Polsko
4 Krakov Polsko

Pojďme získat názvy zemí bez duplikátů.

Řešení:

Použijeme klíčové slovo DISTINCT . Zde je dotaz:

SELECT
DISTINCT country
FROM City;

Zde je výsledek dotazu:

země
Španělsko
Polsko

Diskuse:

Pokud chcete, aby dotaz vracel pouze jedinečné řádky, použijte klíčové slovo DISTINCT za SELECT . DISTINCT lze použít k načtení jedinečných řádků z jednoho nebo více sloupců. Musíte uvést sloupce za DISTINCT klíčové slovo.

Jak to funguje pod kapotou? Po provedení dotazu je nejprve vybrána celá sada dat a poté DISTINCT odstraní řádky, které jsou duplikovány vzhledem k vybraným sloupcům.

V našem příkladu se Španělsko i Polsko v tabulce vyskytují dvakrát. Nicméně po použití klíčového slova DISTINCT , každý z nich je vrácen pouze jednou.


  1. Připojení k databázi Oracle 12c z Pentaho Data Integration (Kettle) Community Edition

  2. ORA-24550:signál přijat:chyba [si_signo=6]

  3. Oracle:rozdíl mezi max(id)+1 a sekvence.nextval

  4. Použití souboru .php ke generování výpisu MySQL