2017-07-12 2 views
0

ich eine Tabelle wie folgt aus:Finding doppelte Einträge in SQL DB und zeigen nur eine

Name | Text 
----------------------- 
ALM_1234 | Language1 
ALM_1234 | Language2 
ALM_4321 | Language1 
ALM_9876 | Language1 

Ich brauche eine SQL-Abfrage für nur einen Eintrag von doppelten Einträgen mit einem Text zeigt. Es spielt keine Rolle, welcher der beiden Texte angezeigt wird. So:

Name | Text 
----------------------- 
ALM_1234 | Language1 
ALM_4321 | Language1 
ALM_9876 | Language1 

Jede Hilfe wäre sehr dankbar.

+0

Sie tun Brauchen sie eine einzige oder mehrere Spalten? – Adam

+0

Verwenden Sie Distinct als 'Select Distinct * aus Tabelle' –

Antwort

1

Verwendung Group By und Min/Max Aggregat

Select Name,Min(Text) as Text 
From yourtable 
Group by Name 
+0

warum die' Min/Max' nur neugierig? – Adam

+0

@Adam - Weil OP erwähnt hat * Es spielt keine Rolle, welcher der beiden Texte angezeigt wird. * –

+0

@Prdp Genau das, was ich gesucht habe. Vielen Dank! – stefanneumeister

0

Verwenden GROUP BY wie es alle, aber die erste von anderen Spalten

select name, text from table group by name; 
0

fallen wird versuchen, den DISTINCT Befehl:

SELECT DISTINCT(Name) FROM table_name; 
+0

Welches DBMS ist das? – jarlh

0

Verwenden Sie in Ihrer Abfrage wie thi s Abfrage:

Select Text From yourtable Group by Text having count(*)>1 

, wenn Sie die doppelte Abfrage finden möchten, sollten Sie diese benutzen:

select Name , Text from Yourtable group by Name , Text having count(*)>1 

Glück

+0

Syntaxfehler, beide Abfragen. – jarlh

+0

Was ist der Syntaxfehler? – MSN

+0

Klammern, die die have-Klausel enthalten. – jarlh

0

unterschiedliche Klausel funktionieren

select distinct name,text from table 
+0

Nein was OP will, wird es alle 4 Zeilen zurückgeben. – jarlh