使用完全外连接 oracle 按一列分组
Posted
技术标签:
【中文标题】使用完全外连接 oracle 按一列分组【英文标题】:group by one column with full outer join oracle 【发布时间】:2017-03-05 17:21:20 【问题描述】:我有以下疑问...
SELECT msn.id_notificacion AS notifiId, plt.planta_id AS plantaId, plt.planta_desc AS plantaDesc, orgPlt.org_id AS orgIdPlanta,
orgPlt.org_desc AS orgDescPlanta, age.agencia_id AS agenciaId, age.agencia_desc AS agenciaDesc, orgAge.org_id AS orgIdAgencia,
orgAge.org_desc AS orgDescAgencia, msn.user_contac AS usuario, msn.email_orig AS correo
FROM cat_cpd_orig_ip msn
FULL OUTER JOIN cat_plantas_erp plt ON msn.planta_id = plt.planta_id
FULL OUTER JOIN cat_planta_loc pltLoc ON plt.planta_id = pltLoc.planta_id
FULL OUTER JOIN cat_organizacion_adi orgPlt ON pltLoc.org_id = orgPlt.org_id
FULL OUTER JOIN cat_agencia_erp age ON msn.agencia_id = age.agencia_id
FULL OUTER JOIN cat_agencia_loc ageLoc ON age.agencia_id = ageLoc.agencia_id
FULL OUTER JOIN cat_organizacion_adi orgAge ON ageLoc.org_id = orgAge.org_id
WHERE msn.id_notificacion IS NOT NULL GROUP BY usuario ORDER BY usuario
但是当我对结果进行分组时,出现以下错误...
ORA-00904: "USUARIO": identificador no valido
00904. 00000 - "%s: invalid identifier"
*Cause:
*Action:
Error en la línea: 11, columna: 48
我的查询返回以下结果...
27 4570 BLM_ATITALAQUIA 63 BARCEL PRUEBA PLANTA TRES prueba.planta_3@grupobimbo.com
9 109 WM_MEXICO 62 BIMBO PRUEBA PLANTA DOS prueba.planta_2@grupobimbo.com
8 727 STE_MARINELA VILLAHERMOSA 62 BIMBO PRUEBA PLANTA DOS prueba.planta_2@grupobimbo.com
29 1225 BLM_LAGUNA 63 BARCEL PRUEBA PLANTA TRES prueba.planta_3@grupobimbo.com
28 1605 BLM_CDIS OCCIDENTE 63 BARCEL PRUEBA PLANTA TRES prueba.planta_3@grupobimbo.com
3 5483 GLO_MEXICO 64 EL GLOBO PRUEBA PLANTA UNO prueba.planta_1@grupobimbo.com
但我需要以下结果...
3 5483 GLO_MEXICO 64 EL GLOBO PRUEBA PLANTA UNO prueba.planta_1@grupobimbo.com
9 109 WM_MEXICO 62 BIMBO PRUEBA PLANTA DOS prueba.planta_2@grupobimbo.com
27 4570 BLM_ATITALAQUIA 63 BARCEL PRUEBA PLANTA TRES prueba.planta_3@grupobimbo.com
我需要按“usuario”对结果进行分组,你能帮帮我吗?
谢谢!
【问题讨论】:
【参考方案1】:对于 Oracle,您不能在 GROUP BY
中使用表别名。因此,对您的错误的明显修复是:
GROUP BY msn.user_contac
ORDER BY msn.user_contac
但是,这只会产生另一个错误——SELECT
中有无数列没有聚合,也没有在 GROUP BY
中。它们会导致另一个错误。
您的问题没有具体说明您想做什么。它只提到了GROUP BY
错误。所以,这回答了你的问题,但它并没有解决你的问题。
您可能想问另一个问题,对您正在尝试做的事情进行更多解释,也许是样本数据和期望的结果。
【讨论】:
我在问题正文中详细说明了我需要做什么。谢谢!以上是关于使用完全外连接 oracle 按一列分组的主要内容,如果未能解决你的问题,请参考以下文章
数据库编程2 Oracle 过滤 函数 分组 外连接 自连接
Pandas数据框:按一列分组,但由其他列连接和聚合[重复]