[SQL] Requête sur nombre d'occurrences
lkaiser
Messages postés
7
Date d'inscription
Statut
Membre
Dernière intervention
-
lkaiser -
lkaiser -
Bonjour à tous,
Je ne suis pas un pro du SQL (du moins pas pour le moment) alors je vous sollicite pour m'aider a résoudre un petit problème.
Voila je cherche depuis quelques heures comment faire une requête qui remonterait le enregistrements en doublon sur un champ particulier, et les trierait par nombre d’occurrences.
Typiquement sur une table contenant les lignes de factures, je souhaiterais la trier DESC par nombre de lignes appartenant à une même facture.
Heu j’espère que j'ai été assez explicite parce que ce n'est pas si évident.
Merci de vos réponses
Cordialement
Je ne suis pas un pro du SQL (du moins pas pour le moment) alors je vous sollicite pour m'aider a résoudre un petit problème.
Voila je cherche depuis quelques heures comment faire une requête qui remonterait le enregistrements en doublon sur un champ particulier, et les trierait par nombre d’occurrences.
Typiquement sur une table contenant les lignes de factures, je souhaiterais la trier DESC par nombre de lignes appartenant à une même facture.
Heu j’espère que j'ai été assez explicite parce que ce n'est pas si évident.
Merci de vos réponses
Cordialement
A voir également:
- Sql compter le nombre d'occurence d'une valeur
- Nombre de jours entre deux dates excel - Guide
- Nombre facile - Télécharger - Outils professionnels
- Faites afficher avec un fond coloré les cellules qui contiennent une valeur comprise entre 250 et 350. quel nombre est dessiné en surbrillance ? - Forum VB / VBA
- Compter le nombre de oui dans une colonne excel ✓ - Forum Excel
- Logiciel gratuit calcul valeur nutritionnelle - Télécharger - Santé & Bien-être
5 réponses
Bonjour,
Il existe des fonctions comme COUNT et GROUP BY.
Cela devrait suffire pour faire ce que tu demandes.
Il existe des fonctions comme COUNT et GROUP BY.
Cela devrait suffire pour faire ce que tu demandes.
Bonjour,
si tu crées les entrées depuis une page web, tu veux éviter les doublons en mettant une fonction.
On regarder avant d'enregistrer si un tuple existe déjà un enregistrement pour la société X pour une date donnée
si tu crées les entrées depuis une page web, tu veux éviter les doublons en mettant une fonction.
On regarder avant d'enregistrer si un tuple existe déjà un enregistrement pour la société X pour une date donnée
function sql_facture_exists($nom_client , $date) { //retourne true si le client existe $query = "SELECT COUNT(*) FROM factures WHERE nom_client='" . $nom_client . "' AND date = '" . $date . "';"; $result = execute_query($query); $row = mysql_fetch_array($result); $result = ($row[0]>0); return $result; }//end function if (!sql_facture_exists($nom_client , $date)) { echo "<h2>Facturecréé.</h2>\n"; $query = "INSERT INTO clients (id_facture, id_client, date_facture, ...) VALUES (NULL , '$id_client', '$date_facture', ...) ;"; execute_query($query); }//end if else { echo "<h2>Facture non créé. </h2 \n"; echo "Facture déjà existante pour le client: \"$nom_client\" <br/> \n"; }//end if
Bonjour Delnc.
Attention. .. tu utilises toujours l'ancienne extension de mysql considéré comme obsolète. ..
il serait temps de passer à mysqli ou a pdo.
de plus.. ta réponse n'a pas vraiment de rapport avec la question. .. sans parler du fait que nous ne savons pas si l'utilisateur developpe en php....
ni même quel SGBD il utilise vraiment. ..
Attention. .. tu utilises toujours l'ancienne extension de mysql considéré comme obsolète. ..
il serait temps de passer à mysqli ou a pdo.
de plus.. ta réponse n'a pas vraiment de rapport avec la question. .. sans parler du fait que nous ne savons pas si l'utilisateur developpe en php....
ni même quel SGBD il utilise vraiment. ..
En complément :
https://www.commentcamarche.net/faq/43261-php-l-extension-mysql-est-obsolete#top
et : https://www.commentcamarche.net/faq/44117-connexion-a-une-base-avec-pdo-mysqli
et enfin (si tu prends PDO) : https://www.commentcamarche.net/faq/27489-pdo-une-autre-facon-d-acceder-a-vos-bases-de-donnees
https://www.commentcamarche.net/faq/43261-php-l-extension-mysql-est-obsolete#top
et : https://www.commentcamarche.net/faq/44117-connexion-a-une-base-avec-pdo-mysqli
et enfin (si tu prends PDO) : https://www.commentcamarche.net/faq/27489-pdo-une-autre-facon-d-acceder-a-vos-bases-de-donnees
Merci Jordane pour les infos mais cela ne m'apporte rien de plus que ce que je connaissais déjà et avec lequel je suis toujours en galère ^^
Pour résumer, j'ai une table contenant N champs dont l'un est le numéro de contrat (NumContrat) et je souhaite trier cette table par regroupement de numéro de contrat descendant.
Les X premières lignes de la vue, après requête, correspondront au plus grand nombre de lignes pour un même numéro de contrat, les Y suivantes au deuxième plus grand nombre de lignes ... etc ... pour finir à la fin avec les singletons :
J'ai essayé ce code mais cela ne semble pas suffisant :
peut être faut il imbriquer deux requête ?
Merci
Pour résumer, j'ai une table contenant N champs dont l'un est le numéro de contrat (NumContrat) et je souhaite trier cette table par regroupement de numéro de contrat descendant.
Les X premières lignes de la vue, après requête, correspondront au plus grand nombre de lignes pour un même numéro de contrat, les Y suivantes au deuxième plus grand nombre de lignes ... etc ... pour finir à la fin avec les singletons :
J'ai essayé ce code mais cela ne semble pas suffisant :
SELECT *
FROM MaTable
GROUP BY NumContrat
ORDER BY CONT(NumContrat)
peut être faut il imbriquer deux requête ?
Merci
Tu peux utiliser une sous requête avec une jointure.
par exemple :
par exemple :
SELECT T1.login_cnx,T1.NB, T2.* FROM ( SELECT C.login_cnx,COUNT( C.login_cnx) as NB FROM c_histo_login C GROUP BY C.login_cnx ORDER BY count(*) DESC )T1 LEFT JOIN c_histo_login T2 ON T1.login_cnx = T2.login_cnx ORDER BY T1.NB DESC
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question