选择具有最长使用日期或最近日期戳的记录

时间:2017-11-07 19:12:36

标签: sql oracle greatest-n-per-group

我正试图从日期中提取最近的记录。下面的表格示例,但表格中的所有手机号码:

USAGE_DATE  MOBILE_NO   IMEI
06-SEP-16   7464924435  3534500646600000
01-SEP-16   7464924435  0000000000000000
10-OCT-16   7464924435  3534500646600000

不幸的是,作为一名新手,我无法使用select子查询正确更新下面的SQL,以便在阅读网站上的现有答案/示例的基础上实现这一点 - 任何人都可以帮忙!?

select max(usage_date_time) AS USAGE_DATE, mobile_no, imei
from gsm_usage
--where mobile_no = '07464924435'
group by usage_date_time, mobile_no, imei

3 个答案:

答案 0 :(得分:0)

尝试

select max(usage_date_time) AS USAGE_DATE, mobile_no, imei
from gsm_usage
--where mobile_no = '07464924435'
group by mobile_no, imei

您不必按聚合函数中的某些内容进行分组。

答案 1 :(得分:0)

如果你需要max(usage_date)      您不需要在

组中插入此列
  select max(usage_date_time) AS USAGE_DATE, mobile_no, imei
  from gsm_usage
  where mobile_no = '07464924435'
  group by mobile_no, imei

您必须按照未参与聚合功能的列

进行分组设置

如果您不想通过imei分组,请通过

删除表单select和grup
  select max(usage_date_time) AS USAGE_DATE, mobile_no
  from gsm_usage
  where mobile_no = '07464924435'
  group by mobile_no

答案 2 :(得分:0)

您通常会使用窗口函数:

=IF(COUNTIF(K:K,"S"),25)

这不是聚合问题,而只是识别最新记录的问题。