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 :

grouping sets, cube, et rollup


Sujet :

PostgreSQL

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 2
    Points : 1
    Points
    1
    Par défaut grouping sets, cube, et rollup
    Bonjour à tous.
    Dans le cadre d'un stage, je doois implémenter l'opérateur cube en langage PIG latin. Pour cela, je voulais d'abord étudier l'opérateur car je ne le connais pas. J'ai donc installé Postgresql, qu'on ma conseillé, mais il n'a pas l'ai de connaitre ni ROLLUP, ni GROUPING SETS, ni CUBE. J'ai longtemps cherché sur le net sans résultats. Quelqu'un pourrait-il me dire s'il y a un patch ou paquet ou une extension à rajouter à Postgresql pour que ça marche ? Et si oui, comment faire ?
    Notes: je tourne sous seven x64 et sous ubuntu x64, avec les install de enterprisedb.com, version 8.4 ou 9.0 beta 3, jai essayé les 2 mais aucune ne marche.
    Note2: Ce n'est pas une erreur de syntaxe: voici l'erreur que j'obtiens:
    ERREUR: la fonction cube(integer, integer, integer) n'existe pas
    LINE 1: SELECT a,b,c,sum(x) FROM test GROUP BY CUBE(a,b,c);
    ^
    HINT: Aucune fonction ne correspond au nom donné et aux types d'arguments.
    Vous devez ajouter des conversions explicites de type.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    ********** Erreur **********
     
    ERREUR: la fonction cube(integer, integer, integer) n'existe pas
    État SQL :42883
    Caractère : 40
    Pourriez-vous m'aider ?
    COrdialement
    Julien.

  2. #2
    Membre émérite
    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
    Points : 2 890
    Points
    2 890
    Par défaut
    PostgreSQL ne supporte pas ces fonctionnalités, et il ne semble pas qu'elles soient en module externe non plus. Le plus simple serait d'utiliser un autre SGBD...

  3. #3
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 770
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 770
    Points : 52 726
    Points
    52 726
    Billets dans le blog
    5
    Par défaut
    Vous trouverez ces fonctions dites analytiques dans MS SQL Server. Par exemple en utilisant le version gratuite SQL Server 2008 R2 Express.
    http://www.microsoft.com/express/Database/

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  4. #4
    Expert éminent Avatar de kain_tn
    Homme Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 564
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 564
    Points : 7 288
    Points
    7 288
    Par défaut
    Bonjour,

    ROLLUP
    et GROUPING SETS ne sont pas supportés en 8.4:
    http://www.postgresql.org/docs/8.4/i...-standard.html

    En revanche CUBE l'est, mais il s'agit d'un module et non de la version core:
    http://www.postgresql.org/docs/8.4/i...tive/cube.html

    Si vous avez compilé vous-même votre base, dans ce cas il faut également compiler cube dans le répertoire contrib.

    Si vous êtes passés par un système de binaires, alors peut-être qu'il vous faut un paquet supplémentaire, et je vous conseille pour ça de demander directement à EnterpriseDB.

    Il y a une raison pour laquelle vous passez par EnterpriseDB plutôt que directement par PostgreSQL? (peut-être que vous utilisez PostgreSQLPlus ?)

    Cordialement
    Copier c'est copier; voler c'est vendre un CD une vingtaine d'euros!


    Code C : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    #include <stdio.h>
     
    int main(int argc, char **argv) {
     
        printf("So long, and thanks for the fish, Dennis...\n");
        return 0;
    }

  5. #5
    Membre émérite
    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
    Points : 2 890
    Points
    2 890
    Par défaut
    Mais le module externe cube des contrib de postgresql sert apparemment à manipuler des cubes au sens mathématique du terme, ce que n'est pas ce que cherche jujulbourgeois visiblement.

  6. #6
    Expert éminent Avatar de kain_tn
    Homme Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 564
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 564
    Points : 7 288
    Points
    7 288
    Par défaut
    Au temps pour moi
    Copier c'est copier; voler c'est vendre un CD une vingtaine d'euros!


    Code C : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    #include <stdio.h>
     
    int main(int argc, char **argv) {
     
        printf("So long, and thanks for the fish, Dennis...\n");
        return 0;
    }

  7. #7
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 2
    Points : 1
    Points
    1
    Par défaut udf pig
    Bonjour à tous, merci pour vos réponses. J'ai opté pour sql server qui m'a effectivement permis d'exécuter du cube.
    J'aurais une autre question: j'ai implémenté une fonction en pig (en java donc) mais je voudrais pouvoir l'écrire comme une requête pig, de la forme A = nom_de_ma_fonction(param1,pmaram2,param...); mais je ne vois pas trop comment faire. Le pig manual donne quelques indications sur des petites fonctions usuelles mais ça ne m'aide pas beaucoup. Auriez-vous une idée ?
    Merci d'avance

Discussions similaires

  1. data set cube avec Birt
    Par Elise49 dans le forum BIRT
    Réponses: 9
    Dernier message: 25/03/2009, 18h07
  2. [Oracle] Explication sur Rollup et Cube
    Par Nadine dans le forum Langage SQL
    Réponses: 8
    Dernier message: 29/09/2008, 19h59
  3. [2K5]Syntaxe Update Set From Join Group by
    Par Monstros Velu dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 15/10/2007, 10h57
  4. [VB6]Property Get/Set avec groupe de contrôles
    Par jacma dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 24/01/2006, 12h09
  5. [Group By] Cube
    Par dudux dans le forum SQL
    Réponses: 7
    Dernier message: 15/08/2004, 13h45

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