phpbar.de logo

Mailinglisten-Archive

AW: Alternative zu COUNT(DISTINCT ...) ?

AW: Alternative zu COUNT(DISTINCT ...) ?

Wolfgang Hauck mysql-de_(at)_lists.bttr.org
Tue, 2 Jul 2002 10:56:33 +0200


>Hallo Liste,

>Um rauszufinden, ob in einer Tabelle doppelte Records sind,
>hab ich folgendes versucht:

>allRows = count(*) FROM tabelle

>distinctRows = count(DISTINCT col_1, col_2, ..., col_n) FROM tabelle

>und wenn allRows ungleich distinctRows, gibt es (allRows - distinctRows)

>doppelte Records.

>Leider macht MySQL Pfusch wenn in einer Tabellenspalte NULL Werte sind.
>(steht zwar in der Doku, ist mir aber unverständlich - für mich ist NULL
>ein
>Wert wie jeder andere).

>Lange Rede, kurzer Sinn: kann mir jemand einen Tip geben, wie ich
>trotzdem mein Problemlein lösen kann ?

Hi Hans,

Zunächst mal Hmmm...???

Wie wärs mit:

1.)
Select count(*) as zaehler from tabelle group by col1, col2,...,coln order by zaehler desc

P.S. ein where zaehler > 1 geht hier leider nicht

2.)

select a.colx from tabelle as a left join tabelle as b on a.colx = b.colx and ... where a.ID != b.ID group by b.colx

Hier werden alle mahr als 2 * vorkommenden colx - Einträge ausgegeben.
a.ID != b.ID musst du durch deine unique - ID ersetzen.

MFG Wolfgang




---
Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter
-->>  http://www.4t2.com/mysql 



php::bar PHP Wiki   -   Listenarchive