2017-08-21 2 views
1

Ich habe zwei Tabellen. University und UniversityType. Struktur sieht so aus. Für UniversitätSQL-Anzahl mit mehreren Tabellen

universityId universityName universityTypeId universityTypeName 
     1   xyz    1    UGC 
     2   abc    1    UGC 
     3   lmn    2    NCT 
     4   pqr    3    AICT 

Für UniversityType

universityTypeId universityTypeName 
      1    UGC 
      2    NCT 
      3    AICT 

Die UniversityType Tabelle ist fixed.Now ich die Anzahl der universityType erhalten möchten, die UGC = 2, AICT = 1, NCT = 1.Now I etwas schreibe wie dieses

SELECT universityId,universityTypeId,universityName FROM 
    University where universityTypeId=:universityTypeId"; 

Aber ich bin nicht richtig result.Can jemand tell.I immer bin neu in SQL.

+0

Sie benötigen eine Aggregationsfunktion zu verwenden, wie [count()] (https://www.w3schools.com/sql/ sql_count_avg_sum.asp) – waka

Antwort

1
SELECT universityTypeId, COUNT(1) 
FROM University where universityTypeId=:universityTypeId 

ODER

SELECT universityTypeId, COUNT(1) 
FROM University 
GROUP BY universityTypeId 

ODER

SELECT universityTypeId, (SELECT COUNT(1) 
    FROM University where universityTypeId = UniversityType.universityTypeId) 
    FROM UniversityType 
+0

Gibt es die Anzahl aller universityTypes zurück? –

+0

Zuerst wird man für den Typ, den Sie übergeben, zählen (was haben Sie versucht?). Der zweite gibt Ihnen die Anzahl der Typen, die eine Universität haben –

+0

Hinzugefügt dritten sql, die Sie für alle Arten von Universitäten zählen –

1

Gefällt Ihnen dieses

SELECT universityId,universityName,count(universityTypeId) as total FROM 
University group by universityId,universityName 

Sie müssen alle Spalten Liste in der Gruppe durch Klausel hinzufügen, wenn es in der Aggregatfunktion verwendet

0
select universityTypeName, COUNT(University.universityId) FROM UniversityType JOIN University ON UniversityType.universityTypeId = University.universityTypeId GROUP BY UniversityType.universityTypeName 

Diese Abfrage

0

Sie müssen die Tabellen, die von UniversityType.universityTypeId und zähle die University s verbinden. Also, versuchen Sie dies:

SELECT t.universityTypeName, count(u.universityId) as total 
FROM University u, UniversityType t 
WHERE u.universityTypeId = t.universityTypeId 
GROUP BY u.universityTypeName; 

Die Ausgabe, die es gibt, ist:

UGC|2 
NCT|1 
AICT|1