【发布时间】:2025-12-18 23:30:02
【问题描述】:
我有这样的数据表:
dept sub-dept class submission-date
ENG CS A 12-06-2012
ENG CS A 19-08-2012
ENG EE A 02-04-2012
ENG CS A 12-08-2013
ENG EE A 02-06-2012
SCI PHY B 11-04-2012
结果必须如下所示:
dept sub-dept class count started-date last-date
ENG CS A 2 12-06-2012 19-08-2012
ENG EE A 2 02-04-2012 02-06-2012
ENG CS A 1 02-04-2013 02-04-2013
SCI PHY B 1 11-04-2012 11-04-2012
在第一行 (ENG,CS,A) 中,提交日期是 12-06-2012,所以我想找出在 12-06-2012 内有多少行与 ENG,CS,A 相同的组合和 12-06-2013(首次出现提交日期应视为初始日期)。虽然第 4 行具有相同的组合,但不位于从第一次出现开始的年份,因此应单独表示(不得计入计数)。 开始日期和最后日期是组合在一年内第一次出现的第一次和最后一次出现。 我在 MySQL(版本-5.6)中这样做。对于这个问题,可以使用基本的 mysql 查询甚至存储过程。 提前致谢。
【问题讨论】:
-
GROUP BY、COUNT()、MIN()/MAX()
-
感谢@Akina 的回复。您能用查询或存储过程详细说明吗?
-
您使用的是 MySQL 还是 MS SQL Server?
-
@jarlh 感谢您的回复。我正在使用 MySQL(5.6 版)
-
submission-date列的数据类型是什么? varchar?
标签: mysql sql stored-procedures