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

Requêtes PostgreSQL Discussion :

Problème avec la fonction mod


Sujet :

Requêtes PostgreSQL

  1. #1
    Membre habitué
    Profil pro
    technicien de labo
    Inscrit en
    Janvier 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : technicien de labo

    Informations forums :
    Inscription : Janvier 2012
    Messages : 8
    Par défaut Problème avec la fonction mod
    bonjour,

    je cherche à calculer des directions de vent moyen, avec la fonction modulo pour revenir sur une échelle entre 0 et 360.

    dans la requête suivante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    select date, 
    case when sum(cos(radians(valeur))) = 0 then (1-(sign(sum(sin(radians(valeur))))*0.5*180))
    Else mod((degrees(atan(sum(sin(radians(valeur)))/sum(cos(radians(valeur))))))+((1-(sign(sum(cos(radians(valeur))))))*0.5*180),360)
    END
     from test
     where (date <= '2001-01-02' and date >= '2000-01-01'and valeur <> 0 )group by date
    order by date
    j'ai ce message d'erreur
    ERREUR: la fonction mod(double precision, integer) n'existe pas
    LINE 3: Else mod((degrees(atan(sum(sin(radians(valeur)))/sum(cos(rad...
    Ça fonctionne si je fais mod(361,360), mais ça ne fonctionne plus avec un nom de champ mod(valeur,360).

    Merci par avance pour votre aide.

    gregory

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 136
    Par défaut
    As-tu essayé de caster ton expression en entier ?
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  3. #3
    Membre Expert
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    1 874
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 874
    Par défaut
    Faire \df mod sous psql pour voir les types possibles des arguments:

    \df mod
                              List of functions
       Schema   | Name | Result data type | Argument data types |  Type  
    ------------+------+------------------+---------------------+--------
     pg_catalog | mod  | bigint           | bigint, bigint      | normal
     pg_catalog | mod  | integer          | integer, integer    | normal
     pg_catalog | mod  | numeric          | numeric, numeric    | normal
     pg_catalog | mod  | smallint         | smallint, smallint  | normal
    (4 rows)
    
    numeric est le choix qui offre le plus de précision si integer n'est pas satisfaisant à cause de la perte de précision potentielle.

  4. #4
    Membre habitué
    Profil pro
    technicien de labo
    Inscrit en
    Janvier 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : technicien de labo

    Informations forums :
    Inscription : Janvier 2012
    Messages : 8
    Par défaut
    merci pour ta réactivité estofilo.
    Effectivement avec la fonction cast ça marche.
    il me faut bien le type numéric pour garder la précision

    bonne continuation

    greg

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Débutant] Problème avec la fonction datenum et mod
    Par Cypette dans le forum MATLAB
    Réponses: 7
    Dernier message: 12/10/2014, 15h17
  2. Problème avec la fonction findfirst ()
    Par Angelico dans le forum Windows
    Réponses: 3
    Dernier message: 05/08/2004, 20h40
  3. [Requete SQL en VBA] Problème avec la fonction FLOOR
    Par zubral dans le forum Langage SQL
    Réponses: 4
    Dernier message: 13/07/2004, 13h24
  4. Problème avec les fonctions
    Par jvachez dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 13/01/2004, 12h06
  5. [Postgresql]Problème avec les fonctions ...
    Par fet dans le forum Requêtes
    Réponses: 4
    Dernier message: 02/10/2003, 09h04

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