0
|
LetEpsilonBeLessThanZero · 技术社区 · 6 年前 |
1
1
您可以使用CTE生成所有月份值,要么形成固定的起始点,要么基于表中的最早日期:
使用最早开始日期为1990-11-17的数据(如您的示例中所示),可以生成333行:
然后,可以在联接到表的查询中使用它,例如:
假设您希望包括仍有工作的人,所以您需要允许结束日期为空(除非您正在为仍有工作的人使用神奇的结束日期值…) 将日期存储为字符串会更复杂一些,但您可以用类似的方式生成月份信息:
用少量的数据进行了非常轻微的测试,两种方法似乎都有效。 |
2
0
如果您想得到月底受雇的员工,则可以在查询的where子句中使用last-day函数。此外,还可以在查询的group by子句中使用该函数。所以您的查询如下:
或者,如果您只想计算每月雇用的员工数,请使用下面的查询。
|
Community wiki · SQL语法新手 1 年前 |
KateMak · 是否将多行中的多列与唯一id组合? 1 年前 |
Karuna · SQL中列内的筛选器[重复] 1 年前 |
Irvan Affandy · 为另一个选择选择声明的键 1 年前 |
Community wiki · 这个MySQL语句出了什么问题? 1 年前 |
Community wiki · 优化从同一表中提取的多列的查询 1 年前 |