2016-06-02 9 views
0

ich in meiner DB habe die folgende Beziehung:Gruppierung mit Count Funktion Unklare

subscribes(cid,title,publisher,offer,period) 

Es beschreibt die Abonnent Zeitschriften („title“), mit dem Primärschlüssel „cid“ - Kundennummer. Die anderen Beziehungen sind hier nicht relevant.

Dies ist der Code, den ich laufen, das finden alle Kunden (cid), die ein Abonnement für nur ein Magazin haben: Magazin

select count(cid), cid 
from subscribes as r1 
group by cid 
having count(cid)=1; 

Die Frage

Wie finde ich, dass man , dass diese Kunden abonniert sind?

Ich habe versucht, nur die "Titel" -Spalte zum Code hinzuzufügen, und es gab mir alle Titel, mit einem $ 1 $ auf der linken Spalte der Zählung.

Danke,

Alan

+3

Verwenden max (Titel). –

+0

Was sind Ihre Rdbms? Oracle, Postgres? –

+0

@JuanCarlosOropeza postgresql. – Alan

Antwort

1
SELECT title, 
     cid 
FROM subscribes 
WHERE cid IN (SELECT cid 
       FROM subscribes 
       GROUP BY cid 
       HAVING Count(cid) = 1); 

Verwenden Sie diese Abfrage