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

Développement SQL Server Discussion :

Agrégation des données par demi-heure


Sujet :

Développement SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert

    Homme Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 186
    Par défaut Agrégation des données par demi-heure
    Bonjour,

    J'ai des données (beaucoup) avec un champ datetime.
    Je souhaiterais regrouper mes données par 1/2 heure (ou 1/4 heure).
    Je travaille sur SQL Server 2008.

    Comment puis-je m'y prendre ?

    Merci.
    [Access] Les bases du débogage => ici

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    22 010
    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 : 22 010
    Billets dans le blog
    6
    Par défaut
    Créez une table de chronodatage au pas voulu.
    Faites une jointure externe droite avec cette table
    Groupez par la chronodatation.

    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/ * * * * *

  3. #3
    Membre Expert

    Homme Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 186
    Par défaut
    Merci pour la réponse
    Citation Envoyé par SQLpro Voir le message
    Créez une table de chronodatage au pas voulu.
    SI je comprends bien, une table avec une colonne dans laquelle je retrouve mes 1/2 heures ou 1/4 heures :
    05:00:00
    05:30:00
    06:00:00
    06:15:00
    06:30:00

    Citation Envoyé par SQLpro Voir le message
    Faites une jointure externe droite avec cette table
    Là, j'ai plus de mal...
    Mes données sont du genre :
    17:12:45
    14:33:53
    06:01:21
    Comment puis-je faire ma jointure ?

    Citation Envoyé par SQLpro Voir le message
    Groupez par la chronodatation.
    Ça, ça ne devrait pas poser de problème.
    [Access] Les bases du débogage => ici

  4. #4
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Par défaut
    Vous pouvez vous inspirer de ceci :

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    WITH Ref AS(
    	SELECT CAST('2010-01-01 00:00' AS DATETIME) AS debut, DATEADD(MINUTE, 15, '2011-01-01 00:00') AS Fin
    	UNION ALL
    	SELECT Fin, DATEADD(MINUTE, 15, Fin)
    	FROM Ref
    	WHERE Fin < '2011-10-01 00:00'
    )
    SELECT *
    FROM Ref
    INNER JOIN MaTable ON MaColonneDate >= debut 
        AND MaColonneDate < fin
    OPTION (MAXRECURSION 0)

    pour les dates de la CTE, spécifiez les bornes de debut et fin correctes (en allant les chercher dans votre table source par exemple...)

  5. #5
    Membre Expert

    Homme Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 186
    Par défaut
    Au temps pour moi, j'avais pas pensé à la jointure
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    MaColonneDate >= debut 
        AND MaColonneDate < fin
    A partir de là, c'est tout simple ...

    Merci.
    [Access] Les bases du débogage => ici

  6. #6
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    22 010
    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 : 22 010
    Billets dans le blog
    6
    Par défaut
    Il vaut mieux créer la table en dur que la faire par récursion via CTE;.. Notre thaïlandais ayant tendance à faire trop de requêtes récursives....
    Sans doute l'influence de boudha, des sourires des thaïlandaises et de la cuisine trop épicée !!!

    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/ * * * * *

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 15/10/2010, 10h47
  2. envoyer des données par mail
    Par zorba49 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 16/12/2005, 11h00
  3. [Tableaux] Affichage des données par lot
    Par randriarabe dans le forum Langage
    Réponses: 1
    Dernier message: 07/12/2005, 08h23
  4. Récupérer des données par LDAP
    Par wil4linux dans le forum ASP
    Réponses: 3
    Dernier message: 14/09/2005, 12h11
  5. envoyer des données par l'intermédiaire d'un bouton
    Par mathilde50 dans le forum Access
    Réponses: 26
    Dernier message: 28/10/2004, 16h49

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