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

发布于 2022-09-07 21:46:57 字数 619 浏览 15 评论 0

问题描述

如下我创建了一张试图,我想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;

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

怪我鬧 2022-09-14 21:46:57

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

只能给你说一下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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文