/ / Compter le nombre de commandes par entreprise - mysql, sql

Compter le nombre de commandes par entreprise - mysql, sql

Je dois écrire une requête qui renvoie le nom de la société et le numéro des commandes de travail particulières que cette société possède.

À l'heure actuelle, ma requête est la suivante:

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;

Ceci retourne le tableau suivant:

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

Ce que je veux c'est:

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

Quelqu'un peut il m'aider avec ça?

Merci

Réponses:

2 pour la réponse № 1

La requête que vous voulez est la suivante:

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;

Je suggère les références suivantes pour l’agrégation SQL et plus précisément le groupe par et le nombre:


2 pour la réponse № 2

utilisation COUNT() et GROUP BY clause,

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

en utilisant 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 pour la réponse № 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