PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : SQL Select Abfrage


Nagelbrett
2003-10-20, 16:40:32
angenommen ich hab eine tabelle mit zwei spalten a und b.
in spalte a stehn mehrere begriffe, wobei auch welche doppelt vorkommen
und spalte b stehn nun jeweils dazugehörige andere begriffe...

wie kann ich nun in einer select abfrage all die begriffe aus spalte a bekommen, die nun öfters als 1mal vorkommen also denen mehrere begriffe in spalte b zugeordnet sind, und die anzahl, wieviele ihnen zugerodnet sind?

nochmal zur verdeutlichung, wenn meine tabelle so aussehn würde:
a | b
-------------
bla | sjd
bla | vmi
bla | ier
kee | peo

dann sollte das ergebnis so aussehn:
bla | 3

das problem ist, ich kann keine aggregatfunktion (count..) in der WHERE-klausel benutzen... wie stell ich das also am besten an?

HellHorse
2003-10-20, 18:52:43
Original geschrieben von Nagelbrett
...
das problem ist, ich kann keine aggregatfunktion (count..) in der WHERE-klausel benutzen... wie stell ich das also am besten an?
MySQL?
Ich nehme mal an, dann geht WITH auch nicht.


Falls es nicht MySQL ist, pack es einfach ins FROM
À la

SELECT TEMP.A, TEMP.C
FROM (SELECT A, COUNT(A) AS C
FROM tabellenname) AS TEMP
WHERE TEMP.C > 1

Xmas
2003-10-20, 18:53:20
Vielleicht so:

SELECT a, count(*)
FROM tabelle
GROUP BY a
HAVING count(*) > 1;

Nagelbrett
2003-10-20, 19:25:46
ahhh
ja genau, HAVING war das was mir gefehlt hat... thx xmas

die andere methode von HellHorse funktioniert zwar auch, allerdings ist das wohl etwas umständlicher ;)

naja, danke jedenfalls

HellHorse
2003-10-20, 22:33:46
Ja, die Lösung von Xmas ist wesentlich eleganter.