Maison  >  Article  >  base de données  >  Comparaison SQL du décalage horaire entre deux enregistrements adjacents

Comparaison SQL du décalage horaire entre deux enregistrements adjacents

jacklove
jackloveoriginal
2018-06-14 16:14:064674parcourir

Dans l'après-midi, j'ai vu qu'un rapport statistique avait été généré pour le projet. La différence de temps statistique entre deux enregistrements adjacents enregistrés dans le tableau XX est

Les données du tableau sont les suivantes :


Il est obligatoire que la différence de temps de création entre deux enregistrements adjacents, comme le 1er et le 2ème enregistrement, soit calculée

c'est-à-dire

zhouhui 5 secondes

dingxiang 24 secondes

La demande est sortie et devait être résolue, puis j'ai trouvé un solution

Méthode 1 :

Code SQL Comparaison SQL du décalage horaire entre deux enregistrements adjacents

  1. sélectionnez t.username,(max( t.CREATIONDATE)-min( t.CREATIONDATE))*24*60*60,count(t.username)/2

  2. de ofloginlog t

  3. --où USERNAME = 'zhouhui '

  4. groupe par t.username

Les statistiques de temps de connexion des utilisateurs sont calculées par regroupement (c'est-à-dire la différence entre les deux enregistrements avant et après)

Rendu :

Explication que le dernier champ est utilisé pour compter le nombre de connexions utilisateurs.

oracle La valeur par défaut pour soustraire deux fois est le nombre de jours

oracle La valeur par défaut pour soustraire deux fois est jours*24, qui est le nombre d'heures de différence

oracle Le nombre de jours pour soustraire deux fois La valeur par défaut pour la soustraction est jours*24*60, qui est le nombre de minutes de différence

      La valeur par défaut pour la soustraction oracle entre deux fois est le nombre de jours* 24*60*60, qui est le nombre de secondes de différence

Méthode 2 :

Code SQL Comparaison SQL du décalage horaire entre deux enregistrements adjacents

  1. sélectionnez nom d'utilisateur, somme(b), compte (nom d'utilisateur) / 2

  2. * 24 *60*60 commeb

  3.                                                                       décalage (type) sur (partition par nom d'utilisateur commander par

    CREATIONDATE) lgtype,
  4. lag(CREATIONDATE) over(partition par nom d'utilisateur ordre par

    CREATIONDATE) lgtime
  5. de ofloginlog t))

  6. -- où USERNAME = 'zhouhui')

  7. groupe par nom d'utilisateur

  8. L'effet est le même et je ne le publierai pas ici Revu le SQL de base haha20100520 Certains changements dans les exigences exigent que le nombre de statistiques ne soit pas le même somme et moyenne des enregistrements TYPE 1 et 0, mais seulement la valeur de TYPE=0, Le regroupement SQL ne peut pas être comme ça J'y ai réfléchi et j'ai amélioré le code SQL

  9. Sql <.>

sélectionnez

g.nom d'utilisateur, g.

heure

, h.

compteComparaison SQL du décalage horaire entre deux enregistrements adjacents

  1. de ( sélectionnez t.username,

  2. étage((max(t.CREATIONDATE) - min(t.CREATIONDATE)) * 24 * 60 * 60) comme

    heure
  3. de ofloginlog t, ofuser b

  4. 🎜>
  5.  

    et t.username = b.username 

  6.  groupe par t.username) g, 

  7. (sélectionnez t.username, count(t.username) as count

  8.  de du journal de connexion t 

  9.                                                                                       

  10. 🎜>
  11. g.username = h.username

  12. commander

    par count

    desc
  13. Résultats de la requête La différence de temps d'analyse est la différence entre les deux ensembles, et le nombre de statistiques ultérieures n'est que le nombre d'enregistrements avec une restriction distincte de TYPE=0. Le nombre de données statistiques est incohérent, il est donc difficile de le faire. implémentez-le dans un groupe. L'idée est d'implémenter USERNAME et TIME en premier. Les enregistrements comptent USERNAME et le nombre d'enregistrements qui satisfont TYPE = 0. Fusionnez les deux résultats via la relation en ligne de SELECT XX FROM A B 2 tables temporaires. ensemble de résultats fusionnés Cet article explique sql adjacent 2 Comparez le décalage horaire des enregistrements Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois.

  14. Recommandations associées :

Connexion .net2.0 Configuration de la base de données Mysql5



Explication détaillée de la différence entre cookie et session

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn