我正在尝试在下面的 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 的聚合函数,但它不起作用,因为它不是数字。
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;