首页 > 解决方案 > 要执行什么类型的查询 (SQL)

问题描述

所以,我有一个包含 Room_Name、Name_Of_Booker、Status、Date_Time 的表。我想向管理层展示一个房间有多忙。状态可以是 2 个值,可以是忙碌或空。Date_Time 是插入的时间戳,如“2021-02-18 01:35:40”。

所以表中的记录看起来像:

Rooom_Name | Name_Of_Booker | Status | Date_Time
------------------------------------------------------------
Room 05    | exampleName2   | Busy   |  2021-02-18 08:00:00 
Room 06    | exampleName1   | Busy   |  2021-02-18 09:15:00  
Room 06    | exampleName1   | Empty  |  2021-02-18 10:30:00         
Room 06    | exampleName3   | Busy   |  2021-02-18 10:30:00 
Room 05    | exampleName2   | Empty  |  2021-02-18 10:45:15 
Room 05    | exampleName4   | Busy   |  2021-02-18 11:00:00 
Room 06    | exampleName3   | Empty  |  2021-02-18 12:00:30 
Room 05    | exampleName4   | Empty  |  2021-02-18 14:30:00 

所以我想到的是:

SELECT COUNT(*) FROM loc_hist WHERE Location='Room06' AND Date_Time LIKE '2021-02-18%';

运行此查询后,我得到了 10 条记录,这是完美的,现在我想知道如何计算房间忙于另一行的时间,我的意思是房间一直忙的时候。假设房间在 2021 年 2 月 18 日 09:00:00 进入“忙碌”状态,并在 2021 年 2 月 18 日 12:00:00 保持这种状态,此时它进入“空”状态并保持空置状态直到 2021- 02-18 17:00:00。

因此,当我使用今天这样的日期时间运行查询时,它将返回最近 24 小时的结果。

所以我需要的是:

Rooom_Name |     Busy    |   Empty     | //example result for 2021-02-18 should look something like because the qry looks between actions made between 2021-02-18 00:00:00 and 2021-02-18 23:59:59
----------------------------------------
Room 05    |   06:15:45  |  17:44:15   |
Room 05    |   02:45:30  |  21:14:30   |  

我可以通过查询来完成吗?如果有怎么办?

标签: mysqlsql

解决方案


推荐阅读