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 MySQL Discussion :

Calcul compteur incrémental


Sujet :

Requêtes MySQL

  1. #1
    Membre averti
    Homme Profil pro
    Lycéen
    Inscrit en
    Octobre 2023
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 19
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Octobre 2023
    Messages : 37
    Par défaut Calcul compteur incrémental
    Bonjour,
    Je suis les précipitations avec l'aide d'un pluviomètre raccordé à un ESP32 qui envoie les impulsions que je stocke dans une BD

    Pour calculer le cumul journée j'avais l'intention de faire la diffrence en tre min et max de la journée et j'aurai ma précipitation de la journée
    ca devrait fonctionner trés bien quand j'ai une progression continue comme celle ci dessous : 25-14 = 11 mm
    Nom : graphe1.png
Affichages : 185
Taille : 9,5 Ko

    Par contre si mon ESP plante le compteur repart de zero et je vais avoir plutôt une courbe comme celle ci :
    Nom : graphe2.png
Affichages : 166
Taille : 10,6 Ko
    Avec dans ce cas 2 coupures une à 5h et une seconde à 18h

    Quelle approche me conseillez vous?

    Merci.

  2. #2
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 325
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 325
    Billets dans le blog
    17
    Par défaut
    Donne un échantillon des données en base.
    Donne le résultat que tu voudrais en tirer.

    Quelle est la nature des mesures du ESP32 et des données transmises ?

  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 998
    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 998
    Billets dans le blog
    6
    Par défaut
    Vous êtes dans l'erreur. Une base de données est faite pour stocker des données brutes. pas des données calculées. En stockant le CUMUL et non la pluviométrie vous n'arriverez à rien.... Les données calculées sont du ressort des requêtes ou des vues qui effectuent des calculs sur les données brutes...

    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://xmrrwallet.com/cmx.psqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://xmrrwallet.com/cmx.pblog.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://xmrrwallet.com/cmx.pmssqlserver.fr/ * * * * *

  4. #4
    Membre averti
    Homme Profil pro
    Lycéen
    Inscrit en
    Octobre 2023
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 19
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Octobre 2023
    Messages : 37
    Par défaut
    Bonjour,

    Vous êtes dans l'erreur. Une base de données est faite pour stocker des données brutes. pas des données calculées. En stockant le CUMUL et non la pluviométrie vous n'arriverez à rien.... Les données calculées sont du ressort des requêtes ou des vues qui effectuent des calculs sur les données brutes...
    Je stocke bien la valeur d'un compteur les graphiques servaient uniquement à illustrer les situations possibles à savoir des remises à zéro du compteur en cas de pb de 'lESP

    Donne un échantillon des données en base.
    Donne le résultat que tu voudrais en tirer.

    Quelle est la nature des mesures du ESP32 et des données transmises ?
    Ci-dessous la structure de ma BD, les données dont je souhaite faire le cumul est la colonne PRECI, (attention à ce stade les valeurs sont des tests dans la réalité elles varieront toutes les heures)

    Mon besoin c'est d'être capable de faire le cumul horaire et à la journée des précipitations donc de la colonne PRECI qui récupère un compteur qui à chaque impulsion va s'incrémenter de 1.27mm


    Question annexe :

    Malgré de multiples tentatives je n'arrive pas à modifier le "SET time_zone = "+00:00";"

    Code : 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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    -- phpMyAdmin SQL Dump
    -- version 5.2.1
    -- https://xmrrwallet.com/cmx.pwww.phpmyadmin.net/
    --
    -- Hôte : localhost:3306
    -- Généré le : ven. 17 mai 2024 à 13:28
    -- Version du serveur : 10.5.20-MariaDB
    -- Version de PHP : 7.3.33
     
    SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
    START TRANSACTION;
    SET time_zone = "+00:00";
     
     
    /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
    /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
    /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
    /*!40101 SET NAMES utf8mb4 */;
     
    --
    -- Base de données : `id2ccccc87_bddatameteo`
    --
     
    -- --------------------------------------------------------
     
    --
    -- Structure de la table `SensorDataTHP`
    --
     
    CREATE TABLE `SensorDataTHP` (
      `id` int(6) UNSIGNED NOT NULL,
      `sensor` varchar(30) NOT NULL,
      `TEMP` decimal(6,2) DEFAULT NULL,
      `HUM` decimal(6,2) DEFAULT NULL,
      `PRES` decimal(6,2) DEFAULT NULL,
      `TEMPR` decimal(6,2) DEFAULT NULL,
      `ECARTTEMP` decimal(2,2) DEFAULT NULL,
      `PRECI` decimal(6,2) DEFAULT NULL,
      `reading_time` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp()
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
     
    --
    -- Déchargement des données de la table `SensorDataTHP`
    --
     
    INSERT INTO `SensorDataTHP` (`id`, `sensor`, `TEMP`, `HUM`, `PRES`, `TEMPR`, `ECARTTEMP`, `PRECI`, `reading_time`) VALUES
    (15020, 'THP', 11.57, 86.64, 1004.97, 10.88, NULL, NULL, '2024-05-02 21:03:51'),
    (15021, 'THP', 11.58, 86.52, 1005.10, 10.89, NULL, NULL, '2024-05-02 21:16:06'),
    (15022, 'THP', 11.58, 86.21, 1005.24, 10.87, NULL, NULL, '2024-05-02 21:26:23'),
    (15023, 'THP', 11.60, 86.26, 1005.27, 10.87, NULL, NULL, '2024-05-02 21:36:41'),
    (15024, 'THP', 11.56, 86.12, 1005.34, 10.87, NULL, NULL, '2024-05-02 21:49:04'),
    (15025, 'THP', 11.59, 85.87, 1005.35, 10.87, NULL, NULL, '2024-05-02 21:59:21'),
    (15026, 'THP', 11.63, 85.72, 1005.54, 10.87, NULL, NULL, '2024-05-02 22:09:39'),
    (15027, 'THP', 11.68, 85.67, 1005.57, 10.97, NULL, NULL, '2024-05-02 22:22:11'),
    (15028, 'THP', 11.68, 85.58, 1005.66, 10.97, NULL, NULL, '2024-05-02 22:32:29'),
    (15029, 'THP', 11.68, 85.48, 1005.63, 10.97, NULL, NULL, '2024-05-02 22:42:46');
     
    --
    -- Index pour les tables déchargées
    --
     
    --
    -- Index pour la table `SensorDataTHP`
    --
    ALTER TABLE `SensorDataTHP`
      ADD PRIMARY KEY (`id`);
     
    --
    -- AUTO_INCREMENT pour les tables déchargées
    --
     
    --
    -- AUTO_INCREMENT pour la table `SensorDataTHP`
    --
    ALTER TABLE `SensorDataTHP`
      MODIFY `id` int(6) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=16127;
    COMMIT;
     
    /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
    /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
    /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

  5. #5
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 325
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 325
    Billets dans le blog
    17
    Par défaut
    Ci-dessous la structure de ma BD, les données dont je souhaite faire le cumul est la colonne PRECI, (attention à ce stade les valeurs sont des tests dans la réalité elles varieront toutes les heures)
    Ce sont des données de test, donc ne reflétant pas forcément ce que tu obtiendras dans la pratique.
    Il faut voir quelle seront exactement les données obtenues.
    Je trouve étrange d'avoir une colonne PRECI stockant un cumul (sur quelle période ?) et pas simplement les précipitations à partir de la relève précédente.
    As-tu un lien vers une doc ?

    Mon besoin c'est d'être capable de faire le cumul horaire et à la journée des précipitations donc de la colonne PRECI qui récupère un compteur qui à chaque impulsion va s'incrémenter de 1.27mm
    Dans ton échantillon la colonne PRECI contient seulement NULL.
    Aurais-tu un échantillon significatif et le résultat attendu ?

  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
    21 998
    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 998
    Billets dans le blog
    6
    Par défaut
    Pour tout ce qui relève d'une information planifiée il faut un planning... Donc une table de chronodatage qui contient une ligne par point dans le temps. Pour un médecin qui fait des consultation tous les 1/4 d'heure alors ce sera une ligne contenant une clé auto incrémentée et une colonne date+heure (UTC) au pas de 15 minutes.

    Si vous ne faites pas cela vous ne verrez pas les manques et vous aurez de sacré problème au moment des changement d'heure d'été hiver...

    Pour info je suis le créateurs de la base de données de vigicrues....

    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://xmrrwallet.com/cmx.psqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://xmrrwallet.com/cmx.pblog.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://xmrrwallet.com/cmx.pmssqlserver.fr/ * * * * *

Discussions similaires

  1. Calcul d'incrémentation pour compteur
    Par fred7 dans le forum C
    Réponses: 13
    Dernier message: 23/11/2017, 08h46
  2. [AC-2013] Rechercher le contenu calculé (compteur) dans un état via vba
    Par altor92 dans le forum IHM
    Réponses: 2
    Dernier message: 03/04/2017, 13h02
  3. Calcul genre compteur en php
    Par sebiswood dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 14/02/2013, 22h57
  4. Calcul d'un compteur sur SAS
    Par Fan_SAS dans le forum SAS Base
    Réponses: 1
    Dernier message: 18/11/2011, 08h15
  5. Champ calculé de type compteur dans un état
    Par OlivierC69 dans le forum Access
    Réponses: 5
    Dernier message: 10/08/2006, 10h04

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