寻找更好的方法来处理 SUM 和 groupby 子句

Looking for a better way to approach SUM and groupby clause

提问人:MAN2022 提问时间:11/10/2023 最后编辑:ShadowMAN2022 更新时间:11/10/2023 访问量:47

问:

我正在使用聚合函数 SUM() 添加三 (3) 个新列(sum (on_hand)、sum(可分配)、sum(要填充的列),然后是 group by 子句,这种方法迫使我在 group by 子句中列出所有 43 列,任何更好的方法来缩短此查询或让我避免此路由,但结果相同,以 43 列 + 3 个新求和列结尾

SELECT
  SUM(ON_HAND_Qty) AS ON_HAND,
  SUM(WM_Allocated_QtY) AS Allocated_QTY,
  SUM(TO_BE_FILLED_QTY) AS To_fill_QTY 
FROM
  INVENTORY 
WHERE latest_flg * * 
GROUP BY * * location_ID,
  DC_NBR,
  Item_ID,
  TC_COMPANY_ID,
  TC_LPN_ID,
  DC_NBR,
  TC_COMPANY_ID,
  LOCATION_ID,
  TC_LPN_ID,
  TRANSITIONAL_INVENTORY_TYPE,
  INVENTORY_TYPE,
  PRODUCT_STATUS,
  CNTRY_OF_ORGN,
  ITEM_ATTR_1,
  ITEM_ATTR_2,
  ITEM_ATTR_3,
  ITEM_ATTR_4,
  ITEM_ATTR_5,
  LOCN_CLASS,
  ALLOCATABLE,
  CREATED_SOURCE,
  CREATED_DTTM,
  LAST_UPDATED_SOURCE_TYPE,
  LAST_UPDATED_SOURCE,
  LAST_UPDATED_DTTM,
  INBOUND_OUTBOUND_INDICATOR,
  LPN_DETAIL_ID,
  C_FACILITY_ID,
  BATCH_NBR,
  LPN_ID,
  WM_INVENTORY_ID,
  ON_HAND_QTY,
  WM_ALLOCATED_QTY,
  TO_BE_FILLED_QTY,
  WM_VERSION_ID,
  CREATED_SOURCE_TYPE,
  TO_BE_CONSOLIDATED_QTY,
  LOCATION_DTL_ID,
  PACK_QTY,
  SUB_PACK_QTY,
  ITEM_ID,
  MARKED_FOR_DELETE,
  RECALL_ID,
  CRNT_ROW_IND,
  BQ_EFF_BGN_DTTM,
  BQ_EFF_END_DTTM,
  BQ_CREATE_DTTM,
  LATEST_FLG 
SQL 分组依据

评论

0赞 Littlefoot 11/10/2023
据我所知,没有捷径可走。您必须逐个指定所有列。
1赞 Mitch Wheat 11/10/2023
大量的 group by 通常是一种代码味道
3赞 Akina 11/10/2023
产生大量引用不同分组表达式值但本身不返回这些分组表达式值的总和的原因是什么?如何区分哪个总和与哪个表达式值匹配?
0赞 jarlh 11/10/2023
通常 GROUP BY 与 SELECT 相同的列,但作为聚合函数参数的列除外
0赞 Thomas G 11/10/2023
如果你遇到这种情况,要么你错了,要么你的数据错了。解释是什么阻止您仅按item_ID分组

答: 暂无答案