我有一个包含开始时间,停止时间和MAC地址的RADIUS会话记录表。我有一个要求,收集两个时间范围内联机的用户列表。我相信,在与下面的查询的时间范围内,我让所有用户的列表在线:SQL从日期范围中选择
SELECT s_session_id, s_start_time, s_stop_time, s_calling_station_id
FROM sessions
WHERE (
("2015-10-01 08:00:00" BETWEEN s_start_time AND s_stop_time OR "2015-10-01 08:30:00" BETWEEN s_start_time AND s_stop_time)
OR
("2015-10-01 12:00:00" BETWEEN s_start_time AND s_stop_time OR "2015-10-01 12:30:00" BETWEEN s_start_time AND s_stop_time)
)
ORDER BY s_start_time;
但下一步,在都时期隔离细节只有那些用户在线时,躲避我。我得到最接近的是
GROUP BY s_calling_station_id HAVING COUNT(s_calling_station_id) > 1
但这并没有提供我所有的会议的细节。
小提琴是在这里:http://sqlfiddle.com/#!9/1df471/1
感谢任何帮助!
可我只是说,谁downvote提供一个明确的要求问题,示例代码,链接,小提琴等不加评论的人是世界上最糟糕的人。严重的是,WTF在这个问题上是错误的? – miken32
@Barranka不是针对你,只是对乙醚的呼喊! – miken32
我不认为它是个人的;)顺便说一句,我觉得你的问题很有趣,我很高兴你有一个很好的答案(我正在研究一个非常类似的方法,但巴尔马速度更快)如果你希望看到我的方法,[这里是SQL小提琴](http://sqlfiddle.com/#!9/1df471/39)。 – Barranka