IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PostgreSQL Discussion :

Calcul dans un ORDER BY


Sujet :

PostgreSQL

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2007
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 18
    Points : 18
    Points
    18
    Par défaut Calcul dans un ORDER BY
    Bonjour, j'ai un problème dans une requete pg, je voudrais faire en sorte que les resultats soient triés par ratio de deux des champs de la meme table

    ex de ma requete :

    SELECT * FROM users ORDER BY "NOTE"/"NB_VOTE"

    J'ai essayé avec parentheses sans paretheses et un bon nombre de formes sans succes , quelqu'un aurait'il une idée pour regler mon problème ??

    Merci d'avance

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    81
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2007
    Messages : 81
    Points : 102
    Points
    102
    Par défaut
    je ne pense pas que tu puisses trier tes lignes sur une colonne qui ne figure pas dans le select !!!

    donc, spécifie les colonnes que tu veux affiché à la place de * ainsi que le ratio.

    SELECT colonne1, colonne2,...,NOTE/NB_VOTE AS RATIO FROM users ORDER BY RATIO

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Août 2007
    Messages
    128
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 128
    Points : 143
    Points
    143
    Par défaut
    Bien sûr que si.

    Par contre, je me demande pourquoi tu mets dans double guillemets autour des noms des colonnes. Donc, dans un premier temps, j'essaierais sans guillemets doubles. Dans un second temps, si ça ne marche toujours pas, copie la requête ET l'erreur dans ce thread.

  4. #4
    Membre du Club
    Inscrit en
    Janvier 2006
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 71
    Points : 64
    Points
    64
    Par défaut
    +1, tu peux ordonner par n'importe quelle expression, je pense que c'est ton expression qui est mal écrite

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM users ORDER BY NOTE/NB_VOTE
    ça devrait marcher

    (je te déconseille de généraliser les capitales, en passant)

    Sakalam
    Marre des blogs trop chiadés ?
    http://blog-de-m.over-blog.com/
    Enfin, un vrai blog de merde (d'un copain) !

  5. #5
    En attente de confirmation mail
    Inscrit en
    Mai 2007
    Messages
    56
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 56
    Points : 54
    Points
    54
    Par défaut
    Postgresql est sensible à la casse et pour lui users est bien différent de USERS. Par défaut, tous les noms de tables, colonnes, etc sont interprétés en minuscules.

    Donc si tu fais un select * from USERS, postgresql (la version que j'utilise en tout cas) exécutera en fait select * from users; Or si ta tables s'appelle vraiment USERS (et non users), il te renverra une erreur !!!

    La seule solution pour empêcher cela est l'utilisation des ". D'où la requête initiale d'ant0inep. Dans ce cas, la requête select * from USERS sera bien exécutée sans problème.

    Bref, dans postgres plus encore que dans n'importe quel SGBD, il faut éviter l'utilisation des majuscules ...

    Concernant le problème de ta requête, s'il ne s'agit pas d'un problème de casse, je pense que le mieux est en effet de poster la requête et l'erreur.

Discussions similaires

  1. Calcul dans champ, where et order by
    Par Ricou13 dans le forum SQL Procédural
    Réponses: 7
    Dernier message: 18/03/2007, 19h37
  2. Calcul dans un triggers : problème du +
    Par eXiaNazaire dans le forum Oracle
    Réponses: 3
    Dernier message: 07/01/2005, 10h14
  3. Recuperer un champ calculé dans une variable....
    Par vijeo dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 21/12/2004, 14h57
  4. Calcul dans des champs de saisie
    Par leeloo076 dans le forum ASP
    Réponses: 4
    Dernier message: 07/04/2004, 10h09
  5. calcul dans une requête
    Par blaz dans le forum Langage SQL
    Réponses: 8
    Dernier message: 22/12/2003, 10h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo