Flux rss
Collection CommentCaMarche.net
Rechercher : dans
Par : Pertinence Date Nom d'utilisateur
Statut : Résolu

SQL: COUNT ET Group BY sous Sql Server

NewbSqlServer, le jeudi 10 juillet 2008 à 12:59:16
Bonjour,
Je suis novice total en Sql Server et j'ai une requête que je n'arrive pas à faire:

SELECT COUNT(cs_service_id), cs_service_id
FROM sessions_informations, consulted_services
WHERE si_start_date >= '2008-05-03 13:40:07' AND si_end_date < '2008-07-12 19:36:07' AND si_called_number='1234' AND sessions_informations.si_session = consulted_services.cs_session GROUP BY cs_service_id

Celle ci marche et me donne bien la somme en groupant par service.
Le problème arrive quand je veux avoir le nom de chaque service qui se trouve dans une troisième table:

SELECT COUNT(cs_service_id), cs_service_id, srv_service_name
FROM sessions_informations, consulted_services, services
WHERE si_start_date >= '2008-05-03 13:40:07' AND si_end_date < '2008-07-12 19:36:07' AND si_called_number='1234' AND sessions_informations.si_session = consulted_services.cs_session AND srv_service_id = cs_service_id GROUP BY cs_service_id, srv_service_name

Là il mouline pendant je ne sais combien de temps.. Ce qui me parait bizzare c'est que j'ai une requête utilisant ces trois même tables où je ne fais pas de COUNT et qui marche très bien en donnant bien le nom de chaque service.

Avez vous une idée ?
Merci d'avance
Répondre à NewbSqlServer  Signaler ce message aux modérateurs Aller au dernier message

1


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
BlueMind, le jeudi 10 juillet 2008 à 14:12:04
Salut,

Tout dépends du temps que ça prend mais c'est bien possible car sans le count il peut lire un record et l'afficher mais avec le count il doit lire tout les records, les compter, afficher le résultat et ensuite passer à un autre couple, etc...
A quoi bon soulever des montagnes quand il est si simple de ­passer par-dessus ?
Répondre à BlueMind

2


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
NewbSqlServer, le jeudi 10 juillet 2008 à 15:02:48
ok.. Donc à priori je n'ai pas moyen de plus optimiser ma requête ?
Parce que si je ne veux pas afficher le nom du service ( uniquement deux tables) bah j'ai un gain de temps considérable mais je dois malheureusement afficher le nom du service donc 3e table.. et la différence de temps est conséquente mais bon ca prend, je dirais 3-4 secondes, mais pour l'instant il n'y a pas un nombre très grand de données..
Répondre à NewbSqlServer

3


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
 NewbSqlServer, le vendredi 11 juillet 2008 à 13:59:06
Bon j'ai essayé en faisant une sous requête:

SELECT cs_service_id, srv_service_name
FROM consulted_services, services,
WHERE cs_session IN ( SELECT si_session From sessions_informations WHERE si_start_date >= '2008-05-03 13:40:07' AND si_end_date < '2008-07-12 19:36:07' AND si_called_number='1234') AND srv_service_id = cs_service_id GROUP BY cs_service_id, srv_service_name

J'ai remarqué que sans faire le COUNT et en enlevant le group By, la requête s'executaitt de facon quasi instantannée !!

Et c'est en rajoutant uniquement le GROUP BY ( sans le Count) que la requête met 11 secondes !!!
Quelqu'un pourrait m'expliquer pourquoi ce Group By met autant de temps à s'executer ?? Sachant que sans le group By on remarque qu'il y a uniquement 2 cs_service_id différent !! et seulement 12 lignes de resultats !!

Je désespère..

Merci d'avance pour votre aide
Répondre à NewbSqlServer

Résultats pour SQL: COUNT ET Group BY sous Sql Server

ACCESS > select count group by + jointure (Résolu) Bonjour, A l'aide de ce post http://www.commentcamarche.net/forum/affich 5138406 sql select count distinct group by access dont je me suis aidé, j'ai reussi à faire ma requête cependant il faudrait une jointure en plus .... SELECT... www.commentcamarche.net/forum/affich-7795244-access-select-count-group-by-jointure
Requete avec Group by en Mysql (Résolu) Bonjour, J'ai une table qui après avoir fait une requête me renvoi mes enregistrements La requête : select catemini_id, dateactuel, mini_id from t_table group by mini_id, order by dateactuel desc Les resultats : Catemini_id ! dateactuel ! mini_id... www.commentcamarche.net/forum/affich-6307321-requete-avec-group-by-en-mysql
SQL doublon sur 2 champs concaténés (Résolu) Bonjour, je cherche à afficher les doublons de la concaténation des champs C_C21_PB et D_BUS de la table SP_OA_PB ; voici ma requête mais ça me renvoie un message d'erreur : SELECT CONCAT(C_C21_PB, D_BUS) AS valeur, FROM SP_OA_PB GROUP BY valeur... www.commentcamarche.net/forum/affich-2471792-sql-doublon-sur-2-champs-concatenes

Résultats pour SQL: COUNT ET Group BY sous Sql Server

[Réseaux] Installation d'un serveur ssh sous WindowsCet article va vous expliquer comment installer et configurer un serveur ssh sous Windows. Sommaire Introduction Choix du logiciel OS nécessaire Outils utilisés Avant de commencer Note importante Note de l'auteur (sebsauvage) I -... www.commentcamarche.net/faq/sujet-2132-reseaux-installation-d-un-serveur-ssh-sous-windows

Résultats pour SQL: COUNT ET Group BY sous Sql Server

Requete SQL OrderBy; Group By (Résolu)Bonjour, Voici mon problème . J'ai une table Commande : commande_id, commande_produit_id, commande_date J'aimerai sortir les dernieres commande et donc lister les commande en ordre décroissant (de la plus récente à la moins récente) donc... www.commentcamarche.net/forum/affich-7857786-requete-sql-orderby-group-by
Nombre d'année + SQL (Résolu)Bonjour, J'aimerai savoir comment compter un nombre de date en SQL. Voila ma requête : SELECT COUNT(fjs_ticket_id) ticket, YEAR(fjs_ticket_date_update) annee FROM tjs_ticket GROUP BY annee ORDER BY annee ASC Elle fonctionne très bien. Nombre de... www.commentcamarche.net/forum/affich-7108186-nombre-d-annee-sql
Requête SQL (Résolu)Bonjour, J'aimerai savoir comment compter un nombre de date en SQL. Voila ma requête : SELECT COUNT(fjs_ticket_id) ticket, YEAR(fjs_ticket_date_update) annee FROM tjs_ticket GROUP BY annee ORDER BY annee ASC Elle fonctionne très bien. Nombre de... www.commentcamarche.net/forum/affich-7106814-requete-sql

Résultats pour SQL: COUNT ET Group BY sous Sql Server

IQon Quatuor PM-9510 AMD Phenom X4 Quad-Core 9500 2.2 GHz / 3072 Mo / 320 Go / DVDRW / Win Vista HomX 4,AMD Phenom X4 Quad-Core,2.2 GHz,3072 MB,320 GB,Logicels fournis:One v7 including Office 16 applications,6 games grouped by product family,Divers:Warranty: 1 year,Souris et clavier inclus,Système d'exploitation:Windows Vista Home... www.commentcamarche.net/guide-achat/iqon-quatuor-pm-9510-amd-phenom-x4-quad-core-9500-2-2-ghz-3072-mo-320-go-dvdrw-win-vista-home-premium-1113692-fiche-technique

Résultats pour SQL: COUNT ET Group BY sous Sql Server

SQL - TriTri des résultats Il est possible en SQL d'organiser les résultats grâce à la clause ORDER BY. La clause ORDER BY est suivie des mots clés ASC ou DESC, qui précisent respectivement si le tri se fait de manière croissante (par défaut) ou... www.commentcamarche.net/contents/sql/sqltri.php3
SQL - Création de tableLe SQL, comportant un langage de définition de données (LDD), permet de créer des tables. Pour cela, il utilise le couple de mots clés CREATE TABLE. La création de tables Le création de tables se fait à l'aide du couple de mots-clés CREATE... www.commentcamarche.net/contents/sql/sqlcreate.php3