Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/87.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,有人能帮我做这个查询吗?我需要在这个查询中按u.a和c.d申请分组: SELECT DISTINCT u.a as ID,DECODE(u.b,'ACT','0','1') as STAT, c.d AS role, NVL(SUBSTR(c.d, 0, INSTR(c.d, '-')-1), c.d) as app, SUBSTR(c.d, INSTR(c.d, ':') + 1) AS role

有人能帮我做这个查询吗?我需要在这个查询中按
u.a
c.d
申请分组:

SELECT DISTINCT u.a as ID,DECODE(u.b,'ACT','0','1') as STAT,
                c.d AS role,
                NVL(SUBSTR(c.d, 0, INSTR(c.d, '-')-1), c.d) as app,
                SUBSTR(c.d, INSTR(c.d, ':') + 1) AS role 
  FROM dbo.USER u left outer join dbo.CONNECTION c on u.a = c.a
例如:

我们有两个表
user
connection

用户
中,数据将为:

id. Stat. 
a1  1    
a2  0
Id  app.    Role
a1  abc-d.  Read
a3  cde-f.  Write
a1  abc-d   Read
连接中
,数据将为:

id. Stat. 
a1  1    
a2  0
Id  app.    Role
a1  abc-d.  Read
a3  cde-f.  Write
a1  abc-d   Read
因此,我需要基于
id
进行左外连接,然后需要基于两个键进行聚合,即
id
from
user
role
from
connection

输出:

ID  stat  APP ROLE
a1   1    abc-d Read
a2   0

您不能在group by子句中使用列别名

您不太可能得到正确的答案,因为问题的描述很差,很难说出您真正想问的是什么。请发布一个和dample输入以及预期的输出。您是否尝试了u.a,c.d分组?此外,如果要分组,则必须对其他字段使用聚合函数。如果您的意思是希望将这些值收集在一起:使用
order by
insteadHi@sirim我也尝试过使用aggregate,但我不确定如何操作…如果您能举例说明,在这种情况下,我如何实现group by,这将是一件非常感激的事情。@rohit您能包括执行结果的可视化表示吗?我不确定我是否真的理解你想要做什么样的分组