【发布时间】:2019-12-30 02:57:31
【问题描述】:
MySQL 服务器上的访问者数据库如下所示
id是主键整数类型,firstname和lastname是文本类型,visitor id是整数类型
id firstname lastname visitorid
1 userfirstname1 userlastname1 1
2 userfirstname2 userlastname2 2
3 userfirstname3 userlastname3 3
4 userfirstname4 userlastname4 4
5 userfirstname5 userlastname5 5
访问数据库 MySQL 服务器如下所示 id 是主键整数类型,时间是 DateTime 类型,visitorid_id 是访问者表的外键(visitor->visitorid) id时间visitorid_id
id scantime visitorid_id
433 2019-12-25 09:00:00.000000 1
434 2019-12-25 18:00:00.000000 1
435 2019-12-26 09:00:00.000000 1
436 2019-12-26 18:00:00.000000 1
437 2019-12-27 09:00:00.000000 1
438 2019-12-27 18:00:00.000000 1
439 2019-12-28 09:00:00.000000 1
440 2019-12-28 18:00:00.000000 1
441 2019-12-29 09:00:00.000000 1
442 2019-12-29 18:00:00.000000 1
443 2019-12-25 10:00:00.000000 2
444 2019-12-25 17:00:00.000000 2
445 2019-12-25 09:30:00.000000 3
446 2019-12-25 17:30:00.000000 3
447 2019-12-25 08:00:00.000000 5
448 2019-12-25 18:00:00.000000 5
449 2019-12-25 11:30:00.000000 4
450 2019-12-25 17:30:00.000000 4
我需要从我的表格上方生成显示以下数据的报告
日期、访客名字、访客姓氏、第一次扫描时间、第二次扫描时间、第一次扫描和第二次扫描时间之间的时间差,格式为 HH:MM:SS。
我使用了以下链接,但无法获得生成所需报告的正确 SQL 查询 一)How to concatenate text from multiple rows into a single text string in SQL server? b) Calculate the time difference between two timestamps in mysql
什么是优化查询以生成大量所需的报告。记录。
【问题讨论】:
-
你需要解释一下什么是“第一次扫描时间,第二次扫描时间”..
-
说明中提到的第1次扫描时间、第2次扫描时间如下。当访客通过检查点时,它的第一次通过称为第一次扫描时间,当访客第二次通过时称为第二次扫描时间,当访客第三次通过时称为第三次扫描时间,依此类推。访客可以多次通过检查站。第一次扫描时间是最旧的,后来的扫描时间是较新的。希望这能澄清您的疑问