phpbar.de logo

Mailinglisten-Archive

AW: wie denn nun ...

AW: wie denn nun ...

Tepperis von der Ohe, Michael (LOGICA) mysql-de_(at)_lists.bttr.org
Thu, 24 Oct 2002 09:26:25 +0200


hallo,

interessant, wie unterschiedlich die syntax von sql implementiert wird. 

das mit dem HAVING COUNT(*) hast Du ja schon selbst 
rausgefunden. 

damit erhälst Du die zeilen 'satz' mit mehr
als einem vorkommen. das count im select gibt Dir die
anzahl der unterschiedlichen ausprägungen Deiner pro_id.
wiedersprüchlich erscheint mir aber die angabe von pro_id
im select. sowas lehnt mir mein rdbms(db2) auch zu recht,
wie ich finde, ab.

wenn Du die häufigkeit des vorkommen von 'satz' benötigst,
solltest Du count(*) auch im select verwenden.

irritiert bin ich auserdem, über die Syntax von
'CONCAT(vnam, ' ', name)' . mir ist lediglich die verknüpfung
von zwei strings bekannt (bei  Dir sind es drei). ich hätte
folgendes "vnam || ' ' || name" gemacht.
ausserdem wär ich auch nicht auf die idee gekommen einen
alias für das GROUP BY zu verwenden (da streikt
mein rdbms auch).
count verlangt bei mir auch das distinct (s.u.).

folgendes hab ich mir vorgestellt, aber ich kenn Deine tabellen
und Dein wunschergebnis nicht: 

Select 
  vname
, count(distinct geschl) AS maennlich_weiblich
, count(*) as wie_oft_satz
>From x
 GROUP BY VNAME
 having count(*) > 1
;

ergebnis:
vname   maennlich_weiblich  wie_oft_satz
Simone	1	                 2
Sinan		2	                 2
Stavros	1	                 2

das sind 2 Simone mit gleichem Geschlecht
allerdings 2 Sinan mit unterschiedlichem Geschlecht
während es 2 Stavros mit wiederum gleichem Geschlecht gibt


> SELECT
> pro_id AS ID,
> COUNT(pro_id) AS anzahl,
> CONCAT(vnam, ' ', name) AS satz
> FROM pro7
> GROUP BY satz
> ;
> 
> 
gruss
 michael

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



php::bar PHP Wiki   -   Listenarchive