Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 是否按最长日期的计数分组显示结果?_Sql_Oracle - Fatal编程技术网

Sql 是否按最长日期的计数分组显示结果?

Sql 是否按最长日期的计数分组显示结果?,sql,oracle,Sql,Oracle,我有下面的样本数据,我需要显示结果,按最大日期分组计数 REQUEST_NUMBER ASSIGNED_GROUP LAST_MODIFIED_DATE 001 GROUP A 001 GROUP B 2/2/2018 002 GROUP A 002 GROUP B 2/2/2018 002 GROUP C

我有下面的样本数据,我需要显示结果,按最大日期分组计数

REQUEST_NUMBER  ASSIGNED_GROUP  LAST_MODIFIED_DATE
001             GROUP A         
001             GROUP B         2/2/2018
002             GROUP A         
002             GROUP B         2/2/2018
002             GROUP C         2/3/2018
003             GROUP B         
我的预期结果需要显示为组的计数,最大值为上次修改日期,如下所示:

ASSIGNED_GROUP  TOTAL_COUNT
GROUP B         2
GROUP C         1
在我上面的例子中,001最后分配给B组,002最后分配给C组,003是仅有1条记录,最后修改日期为空,因此保留在B组

到目前为止,我只尝试了一个结果,但没有得到正确的结果:

SELECT request_number, ASSIGNED_GROUP_NAME
FROM (
    SELECT ROW_NUMBER() OVER (PARTITION BY request_number ORDER BY request_number) RNUM,
           request_number, ASSIGNED_GROUP_NAME
    FROM WORK_DETAIL
    WHERE request_number = '3458112'
    )
WHERE MAX(last_modified_date)
ORDER BY ASSIGNED_GROUP_NAME
你可以使用分组方式


像这样的东西可能有用

    SELECT ASSIGNED_GROUP, COUNT(ASSIGNED_GROUP), MAX(LAST_MODIFIED_DATE) FROM YourTable
    GROUP BY ASSIGNED_GROUP

您可以将ajoin与子查询一起使用,该子查询具有指定的最大日期组

select a.ASSIGNED_GROUP, count(*)
from my_table  a
inner join(

  select ASSIGNED_GROUP,  max(LAST_MODIFIED_DATE) as max_date
  from my_table 
  where LAST_MODIFIED_DATE is not null
  group by ASSIGNED_GROUP

) t on t.max_date = a.LAST_MODIFIED_DATE and t.ASSIGNED_GROUP = a.ASSIGNED_GROUP
group by a.assigned_group

好吧,你们试过什么了?这不考虑maxlast修改日期前的记录
select a.ASSIGNED_GROUP, count(*)
from my_table  a
inner join(

  select ASSIGNED_GROUP,  max(LAST_MODIFIED_DATE) as max_date
  from my_table 
  where LAST_MODIFIED_DATE is not null
  group by ASSIGNED_GROUP

) t on t.max_date = a.LAST_MODIFIED_DATE and t.ASSIGNED_GROUP = a.ASSIGNED_GROUP
group by a.assigned_group