Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.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 Oracle在查询中获取唯一的年份和月份_Sql_Oracle - Fatal编程技术网

Sql Oracle在查询中获取唯一的年份和月份

Sql Oracle在查询中获取唯一的年份和月份,sql,oracle,Sql,Oracle,我有以下查询,返回我正在查找的结果,但事实上我无法让group by工作: select EXTRACT(month from datetime_insert) m, EXTRACT(year from datetime_insert) y from tst_result_main order by datetime_insert 这将返回以下结果: m y 1 2006 1 2006 2 2006 2 2006 2 2007 2

我有以下查询,返回我正在查找的结果,但事实上我无法让group by工作:

select EXTRACT(month from datetime_insert) m, 
       EXTRACT(year from datetime_insert) y 
  from tst_result_main 
 order by datetime_insert
这将返回以下结果:

m    y
1    2006
1    2006
2    2006
2    2006
2    2007
2    2007
我想要的结果是:

m    y
1    2006
2    2006
2    2007
我尝试了以下抛出错误的方法:

select EXTRACT(month from datetime_insert) m,
       EXTRACT(year from datetime_insert) y 
  from tst_result_main 
 order by datetime_insert group by y, m
错误:

 ORA-00933: SQL command not properly ended
 00933. 00000 -  "SQL command not properly ended"
 *Cause:    
 *Action: Error at Line: 7 Column: 136

任何帮助都将不胜感激

您是否尝试过类似于独特价值观的东西:

select DISTINCT
    EXTRACT(month from datetime_insert) m
    , EXTRACT(year from datetime_insert) y 
    from tst_result_main
试试这个:

select EXTRACT(month from datetime_insert) m, EXTRACT(year from datetime_insert) y 
  from tst_result_main 
 group by EXTRACT(year from datetime_insert), EXTRACT(month from datetime_insert)
 order by y,m;
别名不能用于
分组依据
表达式


没有聚合功能,您应该使用distinct子句,而不是group by

select DISTINCT
EXTRACT(month from datetime_insert) m
, EXTRACT(year from datetime_insert) y 
from tst_result_main
 order by y, m

请改为按y、m排序。(当选择DISTINCT时,只能在ORDER BY中指定SELECT列表项。)为什么使用group BY而不使用聚合功能。。使用distinct与
distinct
相关的方法也是可能的,所有方法都可以使用罗马…如果您没有使用聚合函数,那么您应该使用distinct而不是group by,而不使用group by而不使用聚合函数,这在SQL中是不推荐的。@scaisEdge
group by
提供了区别,那么,我认为我不应该再添加一个额外的
distinct
子句。首先,您不能在ORDER BY之后添加GROUP BY子句。他们在SQL简介的第一个小时就教授了这一点。