Sql 根据另一列聚合结果
我有一个SQL查询:Sql 根据另一列聚合结果,sql,oracle,Sql,Oracle,我有一个SQL查询: SELECT COUNT(*), EXTRACT(year from DAY_DATE) FROM ( INNER_SELECT_QUERY ) GROUP BY DAY_DATE; 返回的结果如下所示: 4630 2013 7348 2014 9408 2013 5953 2013 7261 2015 5767 2013 9218 2013 14989 2013 11277 2013 如何按不同年份汇总结果?i、 e
SELECT COUNT(*), EXTRACT(year from DAY_DATE) FROM
( INNER_SELECT_QUERY )
GROUP BY DAY_DATE;
返回的结果如下所示:
4630 2013
7348 2014
9408 2013
5953 2013
7261 2015
5767 2013
9218 2013
14989 2013
11277 2013
如何按不同年份汇总结果?i、 e
22324 2015
34242 2014
23242 2013
54353 2012
我的意思是不重复的年份,所有与年份相关的结果都是汇总的?将提取()置于组中,按:
SELECT COUNT(*), EXTRACT(year from DAY_DATE)
FROM ( INNER_SELECT_QUERY )
GROUP BY EXTRACT(year from DAY_DATE) ;
将提取()
SELECT COUNT(*), EXTRACT(year from DAY_DATE)
FROM ( INNER_SELECT_QUERY )
GROUP BY EXTRACT(year from DAY_DATE) ;
在“内部选择”中执行提取(从日期算起的年份),或者只按提取分组(从日期算起的年份)。这是一个需要测试的长查询。那么,像@Gordon Linoff回答的那样在外部SQL中使用EXTRACT(从日期算起的年份)
可以吗?许多dbms产品都可以,但ANSI SQL标准不行。@Kamaci:是的。您按DAY\u DATE
进行分组,这毫无意义,因为您不希望每天都有结果记录。您必须按提取(从日期算起的年份)
进行分组,就像Gordon建议的那样。@jarlh:为什么不呢?自SQL99起,AFAIKEXTRACT
是标准的一部分。并且能够通过一个表达式进行分组也应该是标准的。我错了吗?在“内部选择”中执行提取(从日期开始的年份),或者可能只是按提取分组(从日期开始的年份)。这是一个需要测试的长查询。那么,像@Gordon Linoff回答的那样在外部SQL中使用EXTRACT(从日期算起的年份)
可以吗?许多dbms产品都可以,但ANSI SQL标准不行。@Kamaci:是的。您按DAY\u DATE
进行分组,这毫无意义,因为您不希望每天都有结果记录。您必须按提取(从日期算起的年份)
进行分组,就像Gordon建议的那样。@jarlh:为什么不呢?自SQL99起,AFAIKEXTRACT
是标准的一部分。并且能够通过一个表达式进行分组也应该是标准的。我错了吗?