mysql - SQL查询一次扫描即可获得结果,无需使用分析功能

标签 mysql sql oracle

我有一个名为 Employee 的表,其中包含 3 列 EmployeeID 奖励日期和奖励

| EMPOYEEID | AwardDate | Award
|1          | 10-03-2018| EOY
|1          | 14-08-2018| EBF
|2          | 10-03-2017| EOY
|3          | 10-03-2016| EOY
|2          | 31-12-2017| COINS
|1          | 31-08-2017| COINS

在oracle中使用SQL查询,我想要的是不使用分析功能,我想在一次扫描中获得每个员工的第一个奖励和最后一个奖励日期。 下面是示例

ID|最后日期|一等奖 1|2018年3月10日|2017年8月31日 2|2017年12月31日|2017年3月10日

最佳答案

使用聚合函数

select EMPOYEEID, max(AwardDate) LastDate, min(AwardDate) FirstAward
from table_name t1
group by EMPOYEEID

关于mysql - SQL查询一次扫描即可获得结果,无需使用分析功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54320468/

相关文章:

mysql - 日期、日期差异和总和

mysql - Joomla SQL 错误 0

mysql - 从 View 中的 SQL 子查询返回值列表

ruby - 如何在没有 rails 的情况下禁用 activerecord-oracle_enhanced-adapter 中的序列?

php - 根据用户的 IP 将纬度和经度填充到数据库中

MySQL排序表合并字段上具有相同值的行,但保持相互顺序

mysql - 使用子选择和 IF 条件的缓慢 MySQL 查询

php - 根据存储变量设置边界?

oracle - 将 sysdate 附加到 Oracle 中的表名

sql - 存储过程执行得非常糟糕 - 增加超时或修复问题