| |||||
| Dernière réponse | ||
|---|---|---|
| Sujet : question SQL | ||
| irulan |
|
|
| Aperçu |
|---|
| Vue Rapide de la discussion |
|---|
| irulan |
|
| gizmo | ben, oui, ca me disait qqch mais comme je garde pas mes anciens exam.
Sinon chuis en 2eme license info. je vais lire ce truc a mon aise. |
| sisicaivrai | info, mais pas de différence hein ;)
bah je sais bien que c'est un exam bidon, mais ca me fait peur que ce soit minou qui corrige :sweat: quand je le vois... et pis certaines requetes sont hardos l'énoncé http://polytech.ulb.ac.be/cours/info364/projet.pdf ben cai du parlai minou kwa, cai comme kan il explik au TP :sarcastic: t'es en quelle année? vais vraiment :sleep: lé tard :o :hello: PS : tiens au fait l'exo doit te rappeler quelque chose, il est tiré de l'exam de l'an passé ;) [edtdd]--Message édité par sisicaivrai--[/edtdd] |
| gizmo | info ou polytech?
Bah, si c'est ca, te bile pas, je me suis tapé un 15 sans avoir ouvert le cours. Minou a même filé des réponses à des copains pendant l'exam (sans s'en rendre compte, le con :D). Tiens, au fait, votre travail, l'enoncé était correct? linguistiquement parlant? Je me suis enguelé avec lui l'année passée parce que c'est phrases auraient fait se retourner bécherelle dans sa tombe... |
| sisicaivrai | j'ai exam demain :sweat: :hello: |
| sisicaivrai |
[edtdd]--Message édité par sisicaivrai--[/edtdd] |
| gizmo | nope, oublie, j'ai dis une connerie, c'est pas généralisé du tout comme fonction du group by
Une solution correct, c'est effectivement celle d'alphaT, a savoir
|
| sisicaivrai |
|
| gizmo | ben oui c'est utile! tout comme le second, ils ont le même rôle... |
| sisicaivrai |
[edtdd]--Message édité par sisicaivrai--[/edtdd] |
| gizmo |
|
| sisicaivrai |
|
| jupiler | essaye d'inverser le problème.
calcul le temps max de connexion et recupère les logins correspondants. essaye: select max(sum(t1.duree)),distinct t1.login from table t1, table t2 where t1.login = t2.login group by t1.login mais sinon, en une seule requete, c'est pas évident |
| sisicaivrai |
|
| AlphaT |
[edtdd]--Message édité par AlphaT--[/edtdd] |
| sisicaivrai | en fait cette question fait partie de l'examen de l'an passé du cours que j'ai demain :(
il y a un corrigé avec, mais il semble complètement faux :( leur réponse :
|
| irulan | Je ne pense pas que tu puisses faire ça en une seule requête SQL : un MAX(SUM(DUREE)) n'est pas possible.
Autre chose, quand tu utilises MAX(duree), ça ne te sort que la valeur MAXIMALE présente dans la colonne duree, en aucune façon ça ne représente la somme des durées. Donc dans tous les cas => blocked ! |
| sisicaivrai | SELECT Login,Max(Durée) FROM Connexions,Abonnements WHERE Max(Durée) IN (SELECT Login,Sum(Durée) FROM Connexions GROUP BY Login) ? |
| sisicaivrai | pas tout a fait irulan :hello: , ce que je voudrais :
[edtdd]--Message édité par sisicaivrai--[/edtdd] |
| irulan | SELECT login, sum(duree) FROM connexions
GROUP BY login HAVING max(duree) = (SELECT max(duree) from connexions) Avec ça tu obtiendras un truc de ce genre : LOGIN SUM(DUREE) ----- ---------- AZERT 15206 YUIOP 2630 QSDFG 98563 où AZERT, YUIOP et QSDFG ont, parmi leur différentes durées de connexions, une durée égale à la durée de connexion maximale... C'est ça que tu voulais ? (j'ai testé cette requête sur Oracle, ça marche) [edtdd]--Message édité par irulan--[/edtdd] |
| sisicaivrai |
[edtdd]--Message édité par sisicaivrai--[/edtdd] |
| wouatouwouatou | salut à tous...
De retour pour un petit passage seulement... :D déjà, un group by sur une donnée lorsqu'on ne retourne que cette donnée... ben... fo pas faire car inutile... :D le truc de bardass me semble correcte... Si tu dois sommer les durees pas login... alors ou est le maximum ? Pige pas trop ton pb. :??: |
| sisicaivrai |
|
| bardass | au dodo
ce sera pour demain :hello: |
| sisicaivrai | la table connexion contient les logs du genre : login, date, heure, duree de connexion |
| sisicaivrai |
[edtdd]--Message édité par sisicaivrai--[/edtdd] |
| bardass | dans ce cas, il y a plus simple :
Select Login, Max(Time) From Connexion group by Login |
| sisicaivrai | non car malheureusement je ne dois sortir que les login de temps de connexion le plus grand
c'est un sale exo theorique, bien sur en pratique ce serait plus tranquille :sweat: et de plus je dois sommer les temps de connexion, la table connexion n'est qu'un log [edtdd]--Message édité par sisicaivrai--[/edtdd] |
| deweb | et
SELECT login from connexions group by login ORDER BY duree DESC LIMIT 0,50 ? (ou time à la place de duree) |
| sisicaivrai | et bien je veux lister tous les logins avec le temps de connexion qui est le plus grand
merci de participer :) PS : pas sympa le move.... |
| joce | comprends pas ce que tu veux faire :)
(le deuxième HAVING est plus que louche pour moi en tout cas) [edtdd]--Message édité par joce--[/edtdd] |
| bardass | défini un peu mieux ce qu'est le temps de connecion maxi |
| sisicaivrai | y a personnes a qui ca dit quelque chose... |
| Stligar | :wahoo: |
| sisicaivrai | j'ai meme po peur du bide :o |
| sisicaivrai | on peut faire ca ?
(le but est de connaitre tous les login de temps de connex maximum) SELECT login from connexions HAVING sum(duree)= (SELECT sum(duree) AS time from connexions HAVING MAX(time)) edit : ok le group by était inutile ;) [edtdd]--Message édité par sisicaivrai--[/edtdd] |




