sql >> Database >  >> RDS >> Database

Hoe geen duplicaten in SQL te tonen

Probleem:

U wilt niet-dubbele records in SQL weergeven.

Voorbeeld:

Onze database heeft een tabel met de naam City met gegevens in de kolommen id , name , en country .

id naam land
1 Madrid Spanje
2 Barcelona Spanje
3 Warschau Polen
4 Krakau Polen

Laten we de namen van de landen krijgen zonder duplicaten.

Oplossing:

We gebruiken het trefwoord DISTINCT . Dit is de vraag:

SELECT
DISTINCT country
FROM City;

Dit is het resultaat van de zoekopdracht:

land
Spanje
Polen

Discussie:

Als u wilt dat de zoekopdracht alleen unieke rijen retourneert, gebruikt u het trefwoord DISTINCT na SELECT . DISTINCT kan worden gebruikt om unieke rijen uit een of meer kolommen op te halen. U moet de kolommen vermelden na de DISTINCT zoekwoord.

Hoe werkt het onder de motorkap? Wanneer de query wordt uitgevoerd, wordt eerst de hele set gegevens geselecteerd en vervolgens DISTINCT verwijdert de rijen die gedupliceerd zijn gegeven de geselecteerde kolommen.

In ons voorbeeld komen zowel Spanje als Polen twee keer voor in de tabel. Echter, na toepassing van het trefwoord DISTINCT , elk van hen wordt slechts één keer geretourneerd.


  1. Wat betekent mysql-fout 1025 (HY000):Fout bij hernoemen van './foo' (errorno:150)?

  2. Is er een manier om tekstgegevens naar de database in PostgreSQL te laden?

  3. Herstel de mysql-database vanuit .frm-bestanden

  4. Prestatieprobleem doorgestuurde records identificeren en oplossen