MySQL没有窗口函数吧 请用 MySQL的语法写
时间: 2024-03-06 18:50:37 浏览: 60
MySql-窗口函数-面试题.md
是的,MySQL 5.7 版本之前并没有窗口函数的支持,可以使用以下查询语句来代替:
```
SELECT t3.姓名, MIN(t3.开始时间) AS 开始时间, MAX(t3.结束时间) AS 结束时间
FROM (
SELECT t1.姓名, t1.开始时间, t2.开始时间 AS 结束时间
FROM (
SELECT 姓名, 开始时间
FROM 表名
WHERE 所属组织 = '某个组织' AND 开始时间 BETWEEN '起始时间' AND '结束时间'
ORDER BY 姓名, 开始时间
) t1
LEFT JOIN (
SELECT 姓名, 开始时间
FROM 表名
WHERE 所属组织 = '某个组织' AND 开始时间 BETWEEN '起始时间' AND '结束时间'
ORDER BY 姓名, 开始时间
) t2 ON t1.姓名 = t2.姓名 AND t1.开始时间 < t2.开始时间
GROUP BY t1.姓名, t1.开始时间
) t3
GROUP BY t3.姓名;
```
其中,'表名' 为数据库表的名称,'某个组织' 为要查询的组织名称,'起始时间' 和 '结束时间' 分别为要查询的时间段的起始时间和结束时间。这个查询语句使用了子查询和自连接来实现,可以得到每个人在所属组织的时间段信息。
阅读全文