当前位置:网站首页>MySQL queries users logged in for at least N consecutive days
MySQL queries users logged in for at least N consecutive days
2022-04-23 04:37:00 【Jieyou grocery store Q】
data
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for orde
-- ----------------------------
DROP TABLE IF EXISTS `orde`;
CREATE TABLE `orde` (
`id` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
`date` datetime NOT NULL,
`orders` varchar(10) COLLATE utf8mb4_general_ci DEFAULT NULL,
PRIMARY KEY (`id`,`date`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
-- ----------------------------
-- Records of orde
-- ----------------------------
BEGIN;
INSERT INTO `orde` VALUES ('1', '2022-01-01 00:00:00', '101');
INSERT INTO `orde` VALUES ('1', '2022-01-02 00:00:00', '109');
INSERT INTO `orde` VALUES ('1', '2022-01-03 00:00:00', '150');
INSERT INTO `orde` VALUES ('1', '2022-01-04 00:00:00', '991');
INSERT INTO `orde` VALUES ('1', '2022-01-05 00:00:00', '145');
INSERT INTO `orde` VALUES ('1', '2022-01-06 00:00:00', '155');
INSERT INTO `orde` VALUES ('1', '2022-01-07 00:00:00', '199');
INSERT INTO `orde` VALUES ('1', '2022-01-08 00:00:00', '188');
INSERT INTO `orde` VALUES ('2', '2022-01-02 00:00:00', '109');
INSERT INTO `orde` VALUES ('3', '2022-01-03 00:00:00', '150');
INSERT INTO `orde` VALUES ('4', '2022-01-01 00:00:00', '100');
INSERT INTO `orde` VALUES ('4', '2022-01-04 00:00:00', '199');
INSERT INTO `orde` VALUES ('5', '2022-01-05 00:00:00', '145');
INSERT INTO `orde` VALUES ('6', '2022-01-06 00:00:00', '1455');
INSERT INTO `orde` VALUES ('7', '2022-01-07 00:00:00', '199');
INSERT INTO `orde` VALUES ('8', '2022-01-08 00:00:00', '188');
INSERT INTO `orde` VALUES ('9', '2022-01-01 00:00:00', '110');
INSERT INTO `orde` VALUES ('9', '2022-01-02 00:00:00', '109');
INSERT INTO `orde` VALUES ('9', '2022-01-03 00:00:00', '150');
INSERT INTO `orde` VALUES ('9', '2022-01-04 00:00:00', '919');
INSERT INTO `orde` VALUES ('9', '2022-01-06 00:00:00', '145');
INSERT INTO `orde` VALUES ('9', '2022-01-09 00:00:00', '455');
INSERT INTO `orde` VALUES ('9', '2022-01-10 00:00:00', '199');
INSERT INTO `orde` VALUES ('9', '2022-01-13 00:00:00', '188');
COMMIT;
SET FOREIGN_KEY_CHECKS = 1;

ranking
SELECT
*,
ROW_NUMBER() over (PARTITION by id ORDER BY date) rn
FROM orde

Ideas : Consecutive date - Continuous sort value = Fix a date
In this way, we can count how many consecutive dates there are
SELECT
*,
DATE_SUB(tmp.date, INTERVAL tmp.rn day) as dateSub
FROM
(SELECT
*,
ROW_NUMBER() over (PARTITION by id ORDER BY date) rn
FROM orde) tmp

And then according to dateSub, id Count the number in groups
Calculate the earliest and latest time of continuous time period
SELECT
tmp2.id,
min(tmp2.date) startDate,
max(tmp2.date) endDate,
count(*) count
FROM
(SELECT
*,
DATE_SUB(tmp.date, INTERVAL tmp.rn day) as dateSub
FROM
(SELECT
*,
ROW_NUMBER() over (PARTITION by id ORDER BY date) rn
FROM orde) tmp) tmp2
GROUP BY tmp2.dateSub, tmp2.id

Add judgment , Specifies to get continuous data 3 More than days of data
SELECT
tmp2.id,
min(tmp2.date) startDate,
max(tmp2.date) endDate,
count(*) count
FROM
(SELECT
*,
DATE_SUB(tmp.date, INTERVAL tmp.rn day) as dateSub
FROM
(SELECT
*,
ROW_NUMBER() over (PARTITION by id ORDER BY date) rn
FROM orde) tmp) tmp2
GROUP BY tmp2.dateSub, tmp2.id
HAVING count(*) > 3

版权声明
本文为[Jieyou grocery store Q]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/04/202204230406554857.html
边栏推荐
- Huawei machine test -- high precision integer addition
- A new method for evaluating the quality of metagenome assembly - magista
- [AI vision · quick review of NLP natural language processing papers today, No. 32] wed, 20 APR 2022
- MYSQL50道基础练习题
- Go reflection - go language Bible learning notes
- 383. 赎金信
- Difference between LabVIEW small end sequence and large end sequence
- Coinbase:关于跨链桥的基础知识、事实和统计数据
- 520. Detect capital letters
- [AI vision · quick review of NLP natural language processing papers today, issue 31] Fri, 15 APR 2022
猜你喜欢

单极性非归零NRZ码、双极性非归零NRZ码、2ASK、2FSK、2PSK、2DPSK及MATLAB仿真

优麒麟 22.04 LTS 版本正式发布 | UKUI 3.1开启全新体验

Apache Bench(ab 压力测试工具)的安装与使用

【论文阅读】【3d目标检测】point transformer

Installation du compilateur croisé de la plateforme zynq

Nature medicine reveals individual risk factors of coronary artery disease

229. Find mode II

Installation of zynq platform cross compiler

Inverse system of RC low pass filter

Bridge between ischemic stroke and intestinal flora: short chain fatty acids
随机推荐
2021数学建模国赛一等奖经验总结与分享
Brushless motor drive scheme based on Infineon MCU GTM module
Ali's ten-year technical experts jointly created the "latest" jetpack compose project combat drill (with demo)
Logger and zap log Library in go language
C语言: 指针的进阶
记录一下盲注脚本
[BIM introduction practice] wall hierarchy and FAQ in Revit
Introduction to Cortex-M3 register set, assembly language and C language interface
/etc/bash_completion.d目录作用(用户登录立刻执行该目录下脚本)
AWS EKS添加集群用户或IAM角色
Bacterial infection and antibiotic use
[mapping program design] coordinate inverse artifact v1 0 (with C / C / VB source program)
Basic use of shell WC (counting the number of characters)
【时序】基于 TCN 的用于序列建模的通用卷积和循环网络的经验评估
递归调用--排列的穷举
Eksctl deploying AWS eks
Leetcode->1 两数之和
Qtspim manual - Chinese Translation
win10, mysql-8.0.26-winx64. Zip installation
eksctl 部署AWS EKS