/ / Zählung der Anzahl der Aufträge pro Firma - MySQL, SQL

Die Anzahl der Aufträge pro Unternehmen wird gezählt - mysql, sql

Ich muss eine Abfrage schreiben, die den Namen des Unternehmens und die Nummer der bestimmten Auftragsbestätigungen des Unternehmens zurückgibt.

Im Moment sieht meine Abfrage so aus:

SELECT c.name, cj.joborder_id
FROM company c, joborder jo, candidate_joborder cj
WHERE c.company_id=jo.company_id
AND jo.joborder_id=cj.joborder_id
AND jo.status = "Active"
AND cj.status=700;

Dies gibt die folgende Tabelle zurück:

Name | Job Order ID
X    | 1874
Y    | 2003
Y    | 2003
Z    | 2001

Was ich will ist:

Name | Count
X    | 1
Y    | 2
Z    | 1

Kann mir jemand dabei helfen?

Vielen Dank

Antworten:

2 für die Antwort № 1

Die gewünschte Abfrage lautet wie folgt:

SELECT c.name,
count(cj.joborder_id)
FROM company c,
joborder jo,
candidate_joborder cj
WHERE c.company_id=jo.company_id
AND jo.joborder_id=cj.joborder_id
AND jo.status = "Active"
AND cj.status=700
GROUP BY c.name;

Ich würde die folgenden Referenzen für die SQL-Aggregation vorschlagen und speziell gruppieren nach und zählen:


2 für die Antwort № 2

benutzen COUNT() und GROUP BY Klausel,

SELECT c.name, COUNT(cj.joborder_id) TotalCount
FROM   company c, joborder jo, candidate_joborder cj
WHERE  c.company_id=jo.company_id
AND jo.joborder_id=cj.joborder_id
AND jo.status = "Active"
AND cj.status=700
GROUP BY c.name

verwenden ANSI JOIN

SELECT  c.name,
COUNT(cj.joborder_id) TotalCount
FROM    company c
INNER JOIN joborder jo
ON c.company_id = jo.company_id
INNER JOIN candidate_joborder cj
ON jo.joborder_id = cj.joborder_id
WHERE   jo.status = "Active" AND
cj.status=700
GROUP   BY c.name

1 für die Antwort № 3
SELECT DISTINCT(c.name), COUNT(cj.joborder_id)
FROM company c, joborder jo, candidate_joborder cj
WHERE c.company_id=jo.company_id
AND jo.joborder_id=cj.joborder_id
AND jo.status = "Active"
AND cj.status=700
GROUP BY c.name