查询出银行柜员半小时内办理开户业务的记录。看看是否存在半个小时内办理了3笔及以上的开户业务。

给出了一张表,里面是一个柜员的操作记录,表records的结构为:

字段 数据类型
Cid(客户id) int
Ctime(时间) datetime

方法一:用窗口函数(需要MySQL8.0以上版本);
方法二:常规的方法。
本案例采用了方法二。由于MySQL8.0版本安装过程曲折,未能顺利安装成功。

1、在MySQL中创建数据库bank

CREATE DATABASE bank;

2、创建表records

CREATE TABLE records(
Cid varchar(10) NOT NULL,
Ctime datetime NOT NULL
);

3、插入数据
(拟插入20条记录)

INSERT INTO records VALUES('adsf', '2017-5-27 10:55:00');
INSERT INTO records VALUES('ngfd', '2017-5-27 10:56:00');
INSERT INTO records VALUES('brsd', '2017-5-27 11:12:33');
INSERT INTO records VALUES('afdg', '2017-5-27 11:30:00');
INSERT INTO records VALUES('4045', '2017-5-27 11:33:23');
INSERT INTO records VALUES('sdsa', '2017-5-27 11:41:21');
INSERT INTO records VALUES('bvrt', '2017-5-27 11:52:55');
INSERT INTO records VALUES('4275', '2017-5-27 12:00:03');
INSERT INTO records VALUES('2578', '2017-5-27 12:04:00');
INSERT INTO records VALUES('7869', '2017-5-27 12:15:00');
INSERT INTO records VALUES('2479', '2017-5-27 12:21:20');
INSERT INTO records VALUES('4537', '2017-5-27 12:28:00');
INSERT INTO records VALUES('wefi', '2017-5-27 12:37:24');
INSERT INTO records VALUES('jrty', '2017-5-27 12:44:00');
INSERT INTO records VALUES('sdfg', '2017-5-27 12:50:11');
INSERT INTO records VALUES('sdvf', '2017-5-27 12:55:25');
INSERT INTO records VALUES('afds', '2017-5-27 13:08:00');
INSERT INTO records VALUES('jhtg', '2017-5-27 13:12:00');
INSERT INTO records VALUES('7632', '2017-5-27 13:15:00');
INSERT INTO records VALUES('fghd', '2017-5-27 13:16:00');

4、自连接
将表中每一条记录,都与20条记录连接起来,得到400条记录(即20*20)。

SELECT a.*, b.*
FROM records a, records b
ORDER BY a.Ctime, b.Ctime;

5、求时间差,新增计算字段记录该时间差

SELECT   a.Cid, a.Ctime AS t1, b.Cid, b.Ctime AS t2,(b.Ctime -a.Ctime) AS t1_t2
FROM records a, records b
ORDER BY a.Ctime, b.Ctime;

6、筛选出与原20条记录相隔半个小时内的所有记录
共有41条

SELECT   a.Cid, a.Ctime AS t1, b.Cid, b.Ctime AS t2,(b.Ctime -a.Ctime) AS t1_t2
FROM records a, records b
WHERE (b.Ctime -a.Ctime) > 0  AND (b.Ctime - a.Ctime) <= 3000
ORDER BY a.Ctime, b.Ctime;

7、对这41条记录,分组计数

SELECT *
FROM (SELECT a.Cid, count(*) as cntFROM (SELECT a.Cid, a.Ctime as t1, b.Cid, b.Ctime as t2,(b.Ctime -a.Ctime) AS t1_t2FROM records a, records bWHERE (b.Ctime -a.Ctime) > 0  AND (b.Ctime -a.Ctime) <= 3000ORDER BY a.Ctime, b.Ctime) AGROUP BY a.Cid) B
ORDER BY B.cnt DESC;

8、其它
(1)时间差。
‘2017-5-27 12:44:00’与’2017-5-27 12:50:11’,相差6分11秒,在这里计算结果显示为611。故半个小时的判断条件为:0-3000,即:WHERE ( b.Ctime -a.Ctime ) > 0 AND ( b.Ctime -a.Ctime ) <= 3000

(2)查询是否存在一个小时内办理了5笔及以上的开户业务

SELECT *
FROM (SELECT a.Cid, count(*) as cntFROM (SELECT a.Cid, a.Ctime as t1, b.Cid, b.Ctime as t2,(b.Ctime -a.Ctime) AS t1_t2FROM records a, records bWHERE (b.Ctime -a.Ctime) > 0  AND (b.Ctime -a.Ctime) <= 10000ORDER BY a.Ctime, b.Ctime) AGROUP BY a.Cid) B
ORDER BY B.cnt DESC;

查询银行柜员半小时内办理业务的记录相关推荐

  1. oracle查询一小时内数据,ORACLE 查询近一天, 近半小时内的数据

    ORACLE 查询近一天, 近半小时内的数据 SELECT 字段 FROM 表名 WHERE 时间字段 BETWEEN SYSDATE-1 AND SYSDATE; // 查询一天内的数据 sysda ...

  2. mysql统计每半小时内的数据(查寻某段时间内的数据)

    mysql统计每半小时内的数据(查寻某段时间内的数据) 表结构 sql展示 sql说明 结果展示 思考 需求:统计某段时间内的数据,以半小时为单位统计 表结构 sql展示 SELECT @rank:= ...

  3. 半小时内实现Esp32-Cam模型训练和图像识别

    Esp32-Cam图像识别 一.网页显示视频流 1.Linux式例程 2.MicroPython式例程 步骤1.下载Thonny 步骤2.烧录Esp32-Cam固件 步骤3.运行相应代码 3.Ardu ...

  4. Mysql 查询当前时间24小时内的数据

    记录一下mysql查询24小时内的sql语句 where time >=(NOW() - interval 24 hour)

  5. sql查询查询半小时内数据的方法

    select * from Messages where datediff(minute ,M_Time,'2018-01-02 12:22:00')<10 //只需要换掉'2018-01-02 ...

  6. 傻瓜式建站平台Strikingly,让没建站经验的人也能在半小时内做出自适应移动设备的网站

    在移动已成趋势的今天,依然有不少中小商家没有自己的网站,更不要说让它们做个可以自适应移动设备的网站了.正因为如此,这几年"傻瓜式"."无需编程"的建站.app ...

  7. SQL根据时间字段查询半小时之内或者之外的数据

    SQL根据时间字段查询半小时之内或者之外的数据 SELECT * FROM kunyao_shop_order WHERE create_time <= CURRENT_TIMESTAMP - ...

  8. oracle查询半小时之内的记录

    半小时内 select * from table where sysdate-1/48 <= column 一小时内 select * from table where sysdate-1/24 ...

  9. carbon 一天的开始 结束_来自一线:银行柜员的一天

    提起银行柜员,大家脑海里立刻会想到"衣着得体.环境舒适.朝九晚五.工作轻松--"这样的词汇,事实上银行柜员的一天也是充满挑战的,也是需要撸起袖子加油干才行呢. 早上 7:30 的街 ...

最新文章

  1. 关于epel源的配置
  2. 微寻,把“线下医院”带到“线上轻松问诊”
  3. Spring boot 启动后执行特定的操作
  4. MVC URL参数传递+变为空格解决方法
  5. Linux+db2+was部署问题总结
  6. 正则表达式验证代码(字母、数字、Email、网址、电话号码、汉字、身份证号码)
  7. python变量定义大全_详解python变量与数据类型
  8. 【十二省联考2019】希望【点边容斥】【换根dp】【长链剖分】【线性数据结构】【回退数据结构】【离线逆元】
  9. cwc云莱特链_CWC的完整形式是什么?
  10. Scrapy-Link Extractors(链接提取器)
  11. hdu 4609 3-idiots(FFT计数)
  12. TransE,知识图谱嵌入(KGE)论文精读
  13. iconfont阿里巴巴矢量图标引入方法
  14. 思科服务器a设置dns信息,思科怎么配置dns服务器
  15. unity引擎发展史
  16. 以讹传讹的小故事大道理
  17. 禅道 php7.1,Centos7安装PHP7 + 禅道(Nginx 1.18 + PHP7.2)
  18. 软考高项的证书好处这么多,赶紧收藏
  19. 计算机基础职高重点知识总结,职高计算机应用基础课浅议
  20. mklink 搜狗五笔输入法使用拼音输入法的颜文字工具

热门文章

  1. LaTex插入图片的几种常用的详细方法
  2. 初学Python第三天写的一个PC版模拟微信自动给好友发送消息
  3. matlab randperm函数
  4. 链表逆序操作C++版本
  5. 安装vue-cli 4058错误解决办法
  6. SpringMVC的启动流程与原理
  7. c++课设学生成绩与学籍管理系统
  8. 联想借网络营销造世界品牌
  9. ACdream之kmp
  10. [010]微波炉制作豉油鸡(图解)