当前位置:网站首页>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
边栏推荐
- 三十六计是什么
- 【论文阅读】【3d目标检测】Voxel Transformer for 3D Object Detection
- [mapping program design] coordinate inverse artifact v1 0 (with C / C / VB source program)
- [mapping program design] coordinate azimuth calculation artifact (version C)
- VHDL implementation of 32-bit binary to BCD code
- VHDL语言实现32位二进制数转BCD码
- 为什么推荐你学嵌入式
- 华为机试--高精度整数加法
- 2021数学建模国赛一等奖经验总结与分享
- [AI vision · quick review of robot papers today, issue 32] wed, 20 APR 2022
猜你喜欢
QML advanced (V) - realize all kinds of cool special effects through particle simulation system
Chlamydia infection -- causes, symptoms, treatment and Prevention
test
Summary of Android development posts I interviewed in those years (attached test questions + answer analysis)
STM32上μC/Shell移植与应用
Express middleware ① (use of Middleware)
单片机串口数据处理(2)——uCOSIII+循环队列接收数据
【论文阅读】【3d目标检测】Improving 3D Object Detection with Channel-wise Transformer
[mapping program design] coordinate inverse artifact v1 0 (with C / C / VB source program)
Iron and intestinal flora
随机推荐
[echart] Introduction to echart
STM32单片机ADC规则组多通道转换-DMA模式
国外LEAD,联盟经理常见问答
AWS eks add cluster user or Iam role
优麒麟 22.04 LTS 版本正式发布 | UKUI 3.1开启全新体验
【论文阅读】【3d目标检测】Voxel Transformer for 3D Object Detection
电钻、电锤、电镐的区别
AWS EKS添加集群用户或IAM角色
/etc/bash_completion.d目录作用(用户登录立刻执行该目录下脚本)
Installation du compilateur croisé de la plateforme zynq
三十六计是什么
Installation and use of Apache bench (AB pressure test tool)
matlab读取多张fig图然后合并为一张图(子图的形式)
Go反射—Go语言圣经学习笔记
Opencv -- yoact case segmentation model reasoning
229. Find mode II
2021数学建模国赛一等奖经验总结与分享
协程与多进程的完美结合
智能电子秤全国产化电子元件推荐方案
Single chip microcomputer serial port data processing (1) -- serial port interrupt sending data