oracle查询中如何使用聚合函数

问题描述 投票:0回答:1

我正在尝试在下面的 Oracle 查询中使用 group by 子句。我不确定如何使用聚合函数进行查询,因为字段不是数字数据。尝试在 oracle sql Developer 中。

我必须按 usrnam 字段分组。我在下面提到了预期的输出。有人可以帮助我吗?谢谢。

Select userroles.usrnam,userroles.treeauth,roles.role
from ROLES,USERROLES
WHERE ROLES.TREEAUTH = USERROLES.TREEAUTH AND USRNAM in ('XXXX','YYYY') group by userroles.treeauth,roles.role;

表格详情:

表格详情

美国海军 树认证 角色
YYYY ML 实验室经理
YYYY TC 实验室-COA
YYYY BB B&S-批次
YYYY 操作数据-DCU
YYYY L IT-LIMS
YYYY 广告 实验室管理员
YYYY DT 数据用户-标签
YYYY SP 实验室特辑
XXXX 高清 服务台
YYYY BS B&S
YYYY 直流电 数据用户
YYYY TN 实验室
YYYY BP 计划-批次
XXXX L IT-LIMS
YYYY 数据库 B&S-批量数据
YYYY 数据用户-COA

预期输出:

预期输出

美国海军 树认证 角色
YYYY ML 实验室经理
TC 实验室-COA
BB B&S-批次
操作数据-DCU
L IT-LIMS
广告 实验室管理员
DT 数据用户-标签
SP 实验室特辑
BS B&S
直流电 数据用户
TN 实验室
BP 计划-批次
数据库 B&S-批量数据
数据用户-COA
XXXX 高清 服务台
L IT-LIMS

我尝试了 usrnam 的聚合函数,但它不起作用,因为它不是数字。

oracle oracle11g oracle-sqldeveloper
1个回答
0
投票

使用 SQL*Plus 命令

BREAK
:

BREAK ON usernam
SELECT u.usrnam,
       u.treeauth,
       r.role
FROM   roles r
       INNER JOIN userroles u
       ON r.treeauth = u.treeauth
WHERE  u.usernam IN ('XXXX','YYYY')
ORDER BY
       u.usernam DESC;
© www.soinside.com 2019 - 2024. All rights reserved.