Re: nur einmaliges zählen
Hannes Streicher
HStreicher at gmx.de
Di Jan 27 15:00:18 CET 2009
Guten Tag Uwe Driessen,
am Dienstag, 27. Januar 2009 um 14:43 schrieben Sie:
> Mal wieder ein Problem
> Ich möchte nur für die Einträge die in T2 sind die Menge an Einträgen in T1 zählen
> Problem die Custumer_id ist in beiden tabellen mehrfach vorhanden aber diese ist der Wert
> der benötigt wird.
> Ein
> SELECT t1.customer_id, count(t1.customer_id)FROM op_databases_mysql t1
> group by t1.customer_id
> 20012 1
> 20016 2
> 20019 3
> 20026 20
> 20027 4
> 20043 3
> 20057 1
> 20072 2
> 20078 1
> 20079 1
> 20083 1
> 20088 1
> 20133 2
> 20150 1
> 20154 4
> 20161 1
> 20230 1
> 20231 3
> 20232 1
> 20234 1
> 20240 2
> 20249 1
> 20252 1
> 20266 2
> 20269 1
> 20299 1
> Dieses Ergebnis möchte ich nun auf noch gültige Einträge beschränken und habe dafür ein
> join auf eine Tabelle die nur noch die aktuellen Domains enthält gemacht. Darin kann die
> customer_id auch mehrfach vorkommen und wodurch für jede customer_id in t2 die customer_id
> in t1 mehrfach gezählt wird.
> SELECT distinct t1.customer_id, count(t1.customer_id)
> FROM op_databases_mysql t1 join diehl_domain t2
> where t1.customer_id = t2.customer_id
> group by t2.customer_id;
> 20012 1
> 20016 12
> 20019 72
> 20026 20
> 20027 12
> 20043 123
> 20057 2
> 20072 30
> 20083 2
> 20088 11
> 20150 2
> 20154 128
> 20161 6
> 20230 1
> 20231 24
> 20232 2
> 20234 4
> 20240 104
> 20249 1
> 20266 6
> 20269 2
> 20299 1
> wie kann ich das umgehen bzw. wo liegt der Fehler im select?
ungetestet
SELECT t1.customer_id, count(t1.customer_id)
FROM op_databases_mysql t1
where exists
( select 1 from diehl_domain t2 where t1.customer_id =t2.customer_id )
group by t1.customer_id;
--
Mit freundlichen Grüssen
Hannes Streicher mailto:HStreicher at gmx.de