按 SUM 对 Oracle 查询排序,而不选择 SUM

2023-12-02

我有一张类似于下面的表:

 lot   |  defect  |  quantity
-------+----------+-----------
 lot1  |  c       |  7
 lot1  |  c       |  2
 lot3  |  e       |  5
 lot3  |  b       |  9
 lot3  |  a       |  5
 lot2  |  d       |  4
 lot4  |  c       |  12
 ...   |  ...     |  ...

我想对行之间的批次和缺陷相等的数量求和,然后按数量总和订购批次(批次 3=9+5+5=19,批次 4=12,批次 1=7+2=9,批次 2=4),然后是数量(每批次内),然后是缺陷。

所以它应该产生以下结果:

 lot   |  defect  |  SUM(quantity)
-------+----------+----------------
 lot3  |  b       |  9
 lot3  |  a       |  5
 lot3  |  e       |  5
 lot4  |  c       |  12
 lot1  |  c       |  9
 lot2  |  d       |  4
 ...   |  ...     |  ...

我能想到的最接近的是以下查询:

SELECT lot, defect, SUM(quantity)
FROM table
GROUP BY lot, defect
ORDER BY SUM(quantity), lot, defect

结果如下:

 lot   |  defect  |  SUM(quantity)
-------+----------+----------------
 lot4  |  c       |  12
 lot1  |  c       |  9
 lot3  |  b       |  9
 lot3  |  a       |  5
 lot3  |  e       |  5
 lot2  |  d       |  4
 ...   |  ...     |  ...

您的问题似乎是关于对结果进行排序。解决方案是使用窗口函数ORDER BY:

SELECT lot, defect, SUM(quantity)
FROM table
GROUP BY lot, defect
ORDER BY SUM(SUM(quantity)) OVER (PARTITION BY lot) DESC,
         lot, SUM(quantity) DESC, defect;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

按 SUM 对 Oracle 查询排序,而不选择 SUM 的相关文章

  • 将 Linq 表达式转换为 SQL Server 查询

    我正在使用一些 crm 框架 该框架没有任何内部 orm 并且不使用实体框架 仅使用纯 sql 查询 我在数据库中的每个表都有实体 所以我有例如 public class Customer public string FirstName g
  • GRANT EXECUTE 所需的权限

    我正在为需要能够创建和删除过程但也向其他用户授予执行权限的用户创建一个组 GRANT CREATE PROCEDURE TO xxx xxx GRANT ALTER ON SCHEMA dbo TO xxx xxx 但是 我需要向组授予什么
  • 查找每个客户组的最新帐户

    我有一个包含客户信息的表 每个客户都会分配一个客户 ID 他们的 SSN 他们在开设更多帐户时会保留该 ID 两个客户可能使用同一个帐户 每个客户都有自己的 ID 帐号不按日期排序 我想找到每个客户或客户组的最新帐户 如果两个客户曾经一起使
  • Oracle数据库中的自增主键

    我想在 SQL Server 的列中实现标识或自动递增值 CREATE TABLE RollingStock Id NUMBER IDENTITY 1 1 Name Varchar2 80 NOT NULL 如何才能做到这一点 正如 Orb
  • sql查询中where子句中的CASE语句

    我正在尝试在我正在处理的查询的 where 子句中编写一个 case 语句 我正在水晶报告中导入代码 我基本上是想说明变量 类型 是否设置为 创建 以便在where子句中为该日期范围运行 否则为不同的日期范围运行 它一直给我一个错误 我似乎
  • 添加日期时间和时间

    服务器 SQL Server 2012 SP1 开发者版 Code declare datetime datetime 1900 01 01 00 00 00 000 declare time time 11 11 11 select da
  • 函数参数的自定义惰性求值/短路的语法

    Oracle 定义了几种结构 这些结构利用了看似惰性求值但实际上是短路的功能 例如 x case when 1 2 then count all prime numbers below 100000000 else 2 2 end 函数 c
  • 选择语句REF oracle

    我需要一些帮助来创建将使用引用的选择语句 我设法很好地插入了值 但是当我尝试使用 where 语句提取值时 输出要么是数据类型错误 要么会输出两个表以及它们都包含的数据 这只是一个例子 Create or replace table1 Ty
  • 带可选参数的 SQL 更新命令?

    我将大约 500 000 个对象插入数据库 其中许多对象是相同的 在数据库中具有相同的主键表示 但其他字段可能不同 因此我使用方法 更新 如果没有行受影响 插入 问题是 有时一个对象的某些字段设置为 null 从文件中无法读取 并且已经在数
  • 创建触发器

    如何启动触发器 以便在未付余额超过 50 美元的情况下无人能够租借电影 这里有一个跨行表约束 即你不能只放置一个 OracleCONSTRAINT在列上 因为它们一次只能查看一行中的数据 Oracle 仅支持两种跨 行约束类型 唯一性 例如
  • 从 blob 反序列化 java 对象

    首先 我很抱歉 我要问一些愚蠢的问题 我根本不懂java 也不知道我们是否可以问这样的问题 如果没有 删除我的主题 oracle中有一个存储blob的表 它是二进制的 我能够解码它 输出看起来像这样 sr com epam insure c
  • SQL Server到Mysql迁移(使用Mysql Workbench)数据传输错误

    我正在使用 Mysql Work bench 6 3 将数据库从 MS Sql server 2008 迁移到 Mysql 在 批量数据传输 期间出错并出现以下警告 这种情况仅发生在像 varchar char 这样的列类型上 当我尝试使用
  • 如何使用 pgAdmin 恢复 postgreSQL 转储文件?

    我有一个 dmp 文件 想要从中恢复数据库 使用 pgAdmin 我该怎么做 在 PgAdmin3 内 在您正在使用的服务器中创建一个新数据库 右键单击该数据库并选择 恢复 使用 浏览器 按钮选择 dmp 文件 选择 恢复 开始恢复数据库
  • 在两个以上的表上使用内联接删除查询

    我想使用两个以上表上的内联接从表中删除记录 假设我有表 A B C D 其中 A 的 pk 在所有其他提到的表中共享 然后如何编写删除查询以使用表 B 和 A 上的内联接从表 D 中删除记录 因为条件是从这两个表中获取的 我需要从 DB2
  • 从 Visual Studio 调试 SQL Server 2005 中的存储过程?

    我在这里和其他地方看到很多令人沮丧的问题 但没有明确的答案 我试图让存储过程进行调试 但没有成功 客户端 VS2005或VS2008 两者都不起作用 当我从存储过程上下文菜单中选择 步入存储过程 时 我在调试窗口中看到 已被用户取消 这就是
  • 我应该如何优化 .net 代码中对一个简单存储过程的多次调用?

    我有一个非常简单的存储过程 create procedure spFoo v varchar 50 as insert into tbFoo select v 我有 50 个值要插入到 tbFoo 中 这意味着在我的 c 代码中我调用 sp
  • 如何在游标中使用嵌套表

    CREATE PROCEDURE p cur OUT a cur IS type rec is record a varchar2 2 b number c number type tab is table of rec tab1 tab
  • 对 SQL Server 2005 结果进行分页

    如何在 SQL Server 2005 中对结果进行分页 我在 SQL Server 2000 中尝试过 但没有可靠的方法来做到这一点 我现在想知道SQL Server 2005是否有任何内置方法 分页的意思是 例如 如果我按用户名列出用户
  • 左连接,左表中没有重复行

    请看下面的查询 tbl 目录 Content Id Content Title Content Text 10002 New case Study New case Study 10003 New case Study New case S
  • 获取SQL中前2个特殊字符之间的字符

    我有数据在sql 只是要注意 SQL STudio is the IDE like data a 10 b c a 1 b c 我想获取前两个符号之间的数据 Output 10 1 这就是我的方法 SELECT CAST

随机推荐

  • 数据错误不是来自 Vue 3 浏览器刷新

    我正在使用 Axios 从数据库中提取数据 随着onMounted 数据来了 但是如果不对浏览器进行任何操作 数据是不可见的 我正在使用 v for 当有变化时 数据就进来 例如 当我滚动时 数据就进来 我无法解决 我该怎么办 我哪里做错了
  • 用于密码验证的正则表达式 C#

    我想在 C 中使用正则表达式验证密码 这些是条件 不应以数字或特殊字符开头 不应以特殊字符结尾 必须至少包含这三个字符中的任何一个 并且不允许使用其他特殊字符 必须包含至少一个字母 必须包含至少一位数字 长度至少应为 8 个字符 这是我的尝
  • 插件照亮 0.7 与 jQuery 1.9.1 或 jQuery-UI 1.10.3 不兼容 -> TypeError: $.css(...) 未定义

    jQuery 或 jQuery UI 中的更改与插件不兼容jquery Illuminate 0 7 插件jquery Illuminate 0 7 works 在 Chrome 30 Firefox 22 和 IE 10 中 它用 jqu
  • SSRS 报告中的嵌入图像未显示 - 权限问题

    我的所有报告的顶部都有一个徽标 作为嵌入图像 这些报告通过 SSRS Web 服务接口显示在 ASP Net Web 应用程序中 所有这些都是非常标准的内容 但图像不会呈现 我只是得到了一个损坏的链接 对于此问题有许多可能的解决方案 我尝试
  • Xcode:缺少自动调整预览窗口大小

    I am learning iOS and using Apress Beggining iOS 5 development book The book says there is a window to preview UI elemen
  • 有人可以用最简单的术语解释什么是“for”循环吗?

    我正在尝试学习编码 但我无法理解 for 循环中发生的情况 if else if else 语句很简单 if this is true do this else otherwise but if this is true do that e
  • 在 Swift 中使用正则表达式

    我正在尝试替换 Swift 中字符串中出现的所有空格和特殊字符 我不知道 Swift 中的正则表达式是什么 我尝试使用内置函数 replacingOccurences of 并将我的 RegEx 作为字符串协议传递 在代码编译时 不进行任何
  • AngularJS 与 Ajax 表单提交需要点击两次

    我需要从 HTML 页面执行以下活动 用户输入电子邮件和密码进行注册 当用户点击时表单被发送到控制器Submit Control 使用 AJAX 创建对 RESTful Server 的 JSON 请求 服务器做出相应响应 根据服务器的响应
  • 我什么时候应该使用 hstack/vstack、append、concatenate、column_stack?

    简单的问题 这些方法各自的优点是什么 看起来 只要给定正确的参数 和 ndarray 形状 它们的工作效果似乎都是相同的 做一些工作到位吗 有更好的表现吗 我什么时候应该使用哪些功能 如果你有两个矩阵 那么你就可以使用hstack and
  • 如何验证人名? -Python/Django

    我希望为我的其中一张表单的全名创建一个验证器 不幸的是 我不确定继续下去的最佳方法是什么 因为它并不像以下那样微不足道 if not char in string letters raise ValidationError 认为正则表达式会
  • 如何在R中使用两种不同类型的日期格式将字符转换为日期?

    我有一个包含超过 200 万个 obs 的庞大数据集 并且所有列的类都是字符类型 我需要将其中之一转换为日期格式 dd mm yyyy 但日期是这样写的 dates lt c 2022 04 08 26 01 2021 14 07 2021
  • WAGU(表视图中的数据)库中的修改

    参考post 其中 Clough 先生给出的答案是 他编写了代码来获得这样的输出 PLATINUM COMPUTERS PVT LTD NO 20 B Main Street Kandy Sri Lanka Land 812254630 M
  • minGW gcc 对 _imp____glew* 函数的未定义引用

    我正在尝试在 Win 7 x64 系统上使用 MinGW 编译一个相对简单的 OpenGL 程序 并且我不断收到对几个 GLEW 函数的未定义引用 我已将库设置为链接到程序 并一直在寻找列表中可能缺少的任何库 但链接器的输出仍然如下所示 1
  • 使用量角器和硒将文件上传到隐藏输入

    我有一个隐藏的文件输入字段 如下所示
  • SQSlistener 未接收消息

    我能够从 springboot 向 SQS 队列发送消息 但无法使用 sqslistener 注释接收消息 有人可以帮忙吗 public void send String message queueMessagingTemplate con
  • Ruby:使用其中一个数组的值对 2 个数组进行排序

    我正在用 ruby 创建一个简单的游戏 并且有两个存储高分的数组 HS Points and HS Names 我将高分保存在两个文件中 并且我想对点进行一些编码 点转换为 to s 23 我想按降序对姓名和分数进行排序 并将它们限制为 1
  • 加载引导加载程序的第二阶段

    我正在尝试为 x86 机器创建一个小型操作系统 并开始为相当小的引导加载程序编写代码 我创建的引导加载程序非常简单 它从位于主引导记录后面的扇区加载一个小的第二引导加载程序 并跳转到该代码 主引导记录中的引导加载程序代码似乎运行良好 当它尝
  • Inno Setup - 替换默认的下一步/后退/取消按钮

    我需要一种方法将我自己的按钮添加到向导页面 删除 Inno Setup 中的现有按钮 那可能吗 对的 这是可能的 code procedure AboutButtonOnClick Sender TObject begin MsgBox T
  • 如何从 MySQL 中的 DATETIME 字段中仅选择日期?

    我在 MySQL 数据库中有一个表 设置为DATETIME 我需要SELECT在此表中仅按日期显示 不包括时间 我如何SELECT在此表中仅按日期并绕过时间 即使该特定列设置为DATETIME Example 现在它是 2012 01 23
  • 按 SUM 对 Oracle 查询排序,而不选择 SUM

    我有一张类似于下面的表 lot defect quantity lot1 c 7 lot1 c 2 lot3 e 5 lot3 b 9 lot3 a 5 lot2 d 4 lot4 c 12 我想对行之间的批次和缺陷相等的数量求和 然后按数