group by 按照一个字段分组,但select多字段?

问题描述

如下我创建了一张试图,我想group by按照RD.SKU分组求和RD.QTYRECEIVED字段为sumsum,但是我想显示select的六个字段,而不是就显示RD.SKU和sumsum,说的简单点就是,sumsum字段想实现相同RD.SKU的RD.QTYRECEIVED和

问题出现的环境背景及自己尝试过哪些方法

相关代码

// 请把代码文本粘贴到下方(请勿用图片代替代码)

CREATE OR REPLACE VIEW aaa AS
SELECT

   R.WHSEID,
   RD.STORERKEY,
   RD.SKU,
   RD.QTYRECEIVED,
   RD.LOTTABLE04+8/24  AS  LOTTABLE04,
   sum(RD.QTYRECEIVED) as sumsum    

FROM ......省略关联表
group by

   R.WHSEID,
   RD.STORERKEY,
   RD.SKU,
   RD.QTYRECEIVED,
   RD.LOTTABLE04;

你期待的结果是什么?实际看到的错误信息又是什么?

阅读 9.3k
1 个回答

我看你问过一个类似的问题,也没人回答,主要是问题点描述不清楚,大家想回答也无从下手。

只能给你说一下group by的基本用法:
group by子句中的字段,是作为分组用的,在你给的例子中有三个字段:R.WHSEID,RD.STORERKEY,RD.SKU,剩余的2个字段是计算字段,不应该放在group by中。

使用group by子句后,select子句后的字段,只能是group by中出现的字段,或通过聚合函数(min,max,avg等)计算字段。
在你给的例子中:sum(RD.QTYRECEIVED)是正确的;
下面两个字段是不正确,需要加聚合函数(min,max,avg等),因为group by后同一个分组存在多条数据,数据库没法判定取哪一条记录。
RD.QTYRECEIVED,
RD.LOTTABLE04+8/24 AS LOTTABLE04

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进