Bonjour à tous,
Quelle requête SQL me permet de connaitre le client qui a le plus de clics ?
Merci.
Bonjour à tous,
Quelle requête SQL me permet de connaitre le client qui a le plus de clics ?
Merci.
Dommage que ce soit urgent et que votre question soit aussi imprécise !
Quelle est la structure de vos tables à interroger ?
Quel SGBD utilisez-vous ?
Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise la suite Linux Mageïa !
boujour,
la table interroger comporte les deux colonnes nb_clic et nb_client et le sgbb c'est le sqlquery.
![]()
On va commencer par la fin...
Non, c'est "Microsoft SQL Server", comme indiqué sur votre photo.le sgbb c'est le sqlquery
Maintenant, la réponse à votre problème...
Quelle est la clé primaire de la table ?
Si j'en comprends bien la structure, il s'agit de stocker, pour chaque événement de chaque département le nombre de clics par client.
Si vous vous voulez le client qui a le plus de clics au total, il faut alors grouper par client et additionner les nb_clics.
Ensuite, vous cherchez dans le résultat de cette sous requête le total_clics maxi :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 SELECT no_client, SUM(nb_clics) AS total_clics FROM dbo.T_clic GROUP BY no_client
Et enfin vous cherchez le ou les clients qui ont ce max_total_clics :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 SELECT MAX(total_clics) AS max_total_clics FROM ( SELECT no_client, SUM(nb_clics) AS total_clics FROM dbo.T_clic GROUP BY no_client ) tmp
Je crois qu'il existe une fonction plus simple sous SQL Server (TOP ?) mais comme je ne la connais pas plus que par son nom, je vous laisse chercher.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 SELECT no_client, SUM(nb_clics) AS total_clics FROM dbo.T_clic GROUP BY no_client HAVING SUM(nb_clics) = ( SELECT MAX(total_clics) AS max_total_clics FROM ( SELECT no_client, SUM(nb_clics) AS total_clics FROM dbo.T_clic GROUP BY no_client ) tmp )
Je vous aurai au moins donné la méthode pour construire petit à petit une requête complexe.
Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise la suite Linux Mageïa !
Re bounjour,
quand je exécute les requête que vous m'avez donne, je reçois des message d'erreur
![]()
D'après votre image précédente, il semble qu'il faille écrire les noms de colonnes entre crochets, ce qui n'est pas du standard SQL donc surprenant de la part de SQLServer mais essayez toujours.
Je ne suis pas utilisateur de ce SGBD.
Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise la suite Linux Mageïa !
Partager