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
fromuser
和role
fromconnection
输出:
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您能包括执行结果的可视化表示吗?我不确定我是否真的理解你想要做什么样的分组