我有以下查询,我只想对 3 列(subject_code、category_code、assrotment_code)进行分组,因为这些是多个条目。
我知道我需要提供所有具有 select 的列,但我需要 select 中的这些列,并且不需要 group by 否则输出将不正确。如何实现这一点还有其他方法吗?
我可以提供快照,为什么我需要这个?突出显示的内容在附件中重复,我想避免这种情况,只需要一条记录即可。
请推荐。
select rts.MERCH_DIV_NUM, min(rts.DEPT_NUM) DEPT_NUM, bc.subject_code, bc.category_code,
rts.ASSORTMENT_CODE, rts.CURR_PEND_QTY,
rts.CURR_PEND_AMT, a.assortment_desc
from rts_subcat_dept_pending rts
inner join bn_assortment a on rts.assortment_code = a.assortment_code
inner join bn_category bc on substr(rts.assortment_code, 0, 4) = bc.category_code
group by bc.subject_code, bc.category_code, rts.ASSORTMENT_CODE
您似乎想要使用分析函数而不是聚合:
select rts.MERCH_DIV_NUM,
min(rts.DEPT_NUM)
OVER (PARTITION BY bc.subject_code, bc.category_code, rts.ASSORTMENT_CODE)
AS DEPT_NUM,
bc.subject_code,
bc.category_code,
rts.ASSORTMENT_CODE,
rts.CURR_PEND_QTY,
rts.CURR_PEND_AMT,
a.assortment_desc
from rts_subcat_dept_pending rts
inner join bn_assortment a
on rts.assortment_code = a.assortment_code
inner join bn_category bc
on substr(rts.assortment_code, 0, 4) = bc.category_code