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

MySQL Discussion :

mysql - group by -> intervales [MariaDB]


Sujet :

MySQL

  1. #1
    Invité de passage
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2016
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2016
    Messages : 2
    Par défaut mysql - group by -> intervales
    Bonjour à toutes et tous,

    J'ai une liste d'environ 5000 stations météo comprenant (entre autre données) l'altitude à laquelle elles se situent. Je souhaiterais savoir combien il y a de stations par intervalles de 100 mètres (0..99, 100..199, etc jusqu'à 4800).

    Pour la répartition par départements, régions, types, accès web-cams c'est facile : group by machin.

    Par contre pour trouver 1 intervalle "where > x and < y" ça ne me pose pas de problème mais j'aimerais obtenir la liste globale (group by intervalles de 100m : 0m..99m = n stations, 100m..199m = n stations, etc).

    J'ai beau chercher à droite et à gauche, je ne trouve rien qui m'aide. Quelqu'un pourrait-il me mettre sur la piste, si bien sûr la chose est possible ?

    Merci d'avance et bonne continuation à vous.

  2. #2
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 656
    Billets dans le blog
    10
    Par défaut
    Il suffit de diviser l'altitude par 100 et de grouper sur ce résultat.

    Exemple :

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    create table ST_station
          (  ST_ident   integer  auto_increment  primary key    
           , ST_nom     varchar(50) not null
           , ST_alt     dec(5,1)    not null
          )
    ;
    insert into ST_station (ST_nom, ST_alt)
    values ('ST1', 1020), ('ST2', 2400), ('ST3', 1234), ('ST4', 1080)
         , ('ST5', 2345), ('ST6', 2380), ('ST7', 2810), ('ST8', 2825)
         , ('ST9', 1288), ('STA', 2980), ('STB', 3018), ('STC', 3082) 
         , ('STD', 4025), ('STE', 3088), ('STF', 4034), ('STG', 4703) 
         , ('STH', 1108), ('STI', 2811), ('STJ', 4096), ('STK', 2887)   
    ; 
    with tab1 (C1, C2) as
        (select  ST_nom
               , round(ST_alt / 100) 
         from ST_station
        )
    select C2 * 100 as plage
         , count(*) as nbr
    from tab1
    group by C2 
    order by C2
    ;

    Résultat :

    Nom : Sans titre.png
Affichages : 19
Taille : 4,9 Ko

  3. #3
    Invité de passage
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2016
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2016
    Messages : 2
    Par défaut au bon bourreau
    Bonsoir,

    Merci Escartefigue pour cette réponse, j'ai testé "pour de vrai" et ça marche !

    J'ai vu quelque part "bourreau" et "modérateur", des bourreaux comme vous c'est à rencontrer tous les jours et à fréquenter sans modération !

    Merci encore et bonne continuation.

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

Discussions similaires

  1. Group by par intervalles de 30 minutes
    Par bullrot dans le forum Langage SQL
    Réponses: 16
    Dernier message: 06/08/2013, 09h59
  2. MYSQL - requete avec un intervale de DATE
    Par mastronic dans le forum Requêtes
    Réponses: 3
    Dernier message: 08/08/2006, 17h25
  3. [MySQL] GROUP BY conditionnel
    Par Dr_GonZO dans le forum Langage SQL
    Réponses: 6
    Dernier message: 25/07/2006, 14h18
  4. Requete mysql group by
    Par yobogs dans le forum Requêtes
    Réponses: 3
    Dernier message: 09/11/2005, 22h38
  5. mysql group by???
    Par rayno dans le forum Langage SQL
    Réponses: 2
    Dernier message: 20/11/2004, 13h53

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