天道酬勤,学无止境

Updating Variable with Current Row Value

I am trying to perform a complex operation where I pull the sum for an entire column of data and subtract the running subtotal from the sum for each row. I can do the component parts of Sum and Running Subtotal alone. Used this for running subtotal:

sum(UsageMetric) over(order by Nested1.IDNumber) as RunningTotal

However, I get this error when trying to comine them:

Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression.

So I rigged this up, and it returns the 'stand-alone' running subtotal for a given row:

declare @TargetNumber BIGINT
Set @TargetNumber=(select Nested1.IDNumber from TargetTable Nested1 where Nested1.IdNumber='1234567890' and (Extraneous Criteria Here))

select  sum(Usage.UsageMetric) 
from Table_Usage Usage, IDTable IDT
where IDT.IDNumber <= @TargetNumber
and (Extraneous Criteria Here)

But what I would really like to do is be able to remove the qualifier "Nested1.IDNumber='1234567890' and just perform this for each IDNumber in TargetTable.

评论

If I understand you correctly, you could do the following:

sum(UsageMetric) over () -
sum(UsageMetric) over (order by Nested1.IDNumber) as ...

Although simply reverting the order of rows in the OVER clause would yield the same results, I believe:

sum(UsageMetric) over (order by Nested1.IDNumber DESC) as ...

受限制的 HTML

  • 允许的HTML标签:<a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • 自动断行和分段。
  • 网页和电子邮件地址自动转换为链接。

相关推荐
  • Anchor Cycler / Dropdown 定期导入学校课堂数据(Anchor Cycler / Dropdown to import school class data periodically)
    问题 所以, 我最近一直在研究一些 html/javascript/css 来为我的学生创建一个在线表格来查看详细信息、分数和各种信息,但我遇到了砖墙并且不确定如何做我正在尝试的事情去做。 我在一个线程中发布所有这些的原因是因为我认为其中一些可能会发生冲突并导致之前的编辑无法运行...... 我意识到这里有很多问题,不要指望有人对整个事情进行编码,我只是在寻找一些帮助/片段/想法,并且非常感谢那些有评论/描述的人,以便我可以继续学习和改进:) 更新 13/11/2013 @ 02:43 GMT 最新:http://jsfiddle.net/pwv7u/ 我正在努力获得Next Class | Previous Class Next Class | Previous Class是循环按钮,以与下拉列表的工作方式相同的方式在类之间移动。 原来在页面底部的滚动条因为宽度改变而消失了...... 底部的页脚在移动设备上无法正确显示,并且“向左滚动”和“滚动”按钮在移动设备上根本不显示。 向左滚动按钮无法点击刷新页面会将水平滚动位置重置为最左侧(我很确定这与滚动条有关) 关于加载/刷新,我想我将不得不再写一篇文章,因为当前的选项几乎就在那里,但还不完全,我将在下面举例说明我希望它工作的理想方式。 main.html将不包含任何类的详细信息:http: main.html “选项”(下拉列表
  • Scope variable not updating in DOM after event listener changes it
    I have a variable defined in my $scope object and bound in the DOM. When the page loads, the value is displayed correctly. I have a listener defined on the $window resize event which does fire appropriately when the window is resized. I put a breakpoint in the function that gets called and it does have the correct value of picCols when run and it does change to the new value based on the current window width. However after the function is finished the DOM does not update with the new value. Here is my controller. The watched variable is $scope.picCols .controller('AlbumEditCtrl', function(
  • MySQL优化面试题(2021最新版)
    前言 随着系统用户量的不断增加,MySQL 索引的重要性不言而喻,对于后端工程师,只有在了解索引及其优化的规则,并应用于实际工作中后,才能不断的提升系统性能,开发出高性能、高并发和高可用的系统。 今天小编首先会跟大家分享一下MySQL 索引中的各种概念,然后介绍优化索引的若干条规则,最后利用这些规则,针对面试中常考的知识点,做详细的实例分析,这里还分析一份MySQL知识总结的思维导图。 小编分享的这份金三银四Java后端开发面试总结包含了JavaOOP、Java集合容器、Java异常、并发编程、Java反射、Java序列化、JVM、Redis、Spring MVC、MyBatis、MySQL数据库、消息中间件MQ、Dubbo、Linux、ZooKeeper、 分布式&数据结构与算法等26个专题技术点,都是小编在各个大厂总结出来的面试真题,已经有很多粉丝靠这份PDF拿下众多大厂的offer,今天在这里总结分享给到大家!【持续更新中!】 完整版Java面试题地址:2021最新面试题合集集锦。 序号 专题 内容 链接 1 中间件 Java中间件面试题(2021最新版) ​ https://blog.51cto.com/14994509/2692669 2 微服务 Java微服务面试题(2021最新版) ​ https://blog.51cto.com/u_14994509/2694841
  • MySQL字符类型datetime与timestamp
    这片博客来详细分区一下这哥俩!首先来说明这两个字符类型:DATETIME81000-01-01 00:00:00 ~9999~12-31 23:59:590000-00-00 00:00:00TIMESTAMP(包含时区信息)41970-01-01 08:00:01~2038-01-19 11:14:070000-00-00 00:00:00如上直观的看到timestamp类型占用了更少的字节,但是timestamp表示的时间却是有限的。这两个值都可以自动初始化并且更新为当前的时间戳,对于表中的任何TIMESTAMP或 DATETIME列,您可以将当前时间戳分配为默认值,自动更新值或两者:首先说这两个类型都可以做的事: 这两个类型都可以设置默认值,也都可以设置自动更新。下面举例说明。 auto_increment )当向表中插入一条数据时,t1~t4会插入当前时间戳的默认值!mysql> insert into tb5(t5) select NULL; Query OK, 1 row affected (0.05 sec) Records: 1 Duplicates: 0 Warnings: 0mysql> select * from tb5; #t1~t4因为是以当前时间戳为默认值的,因此相等。+---------------------+--------------------
  • 从列表更新OptionMenu(Updating OptionMenu from List)
    问题 我的GUI中有一个由菜单填充的OptionMenu。 每次用户运行某个进程时,列表都会更新以反映这一点。 有没有一种方法可以基于列表更新OptionMenu? 我已经按照这个问题尝试过self.plotWindow.update()但没有用。 但是,关闭并重新打开该窗口并不会像您期望的那样刷新OptionMenu。 相关代码: if self.figNum.get() == 'New Figure...': if self.figList[-1] == 'New Figure...': self.figList.append(1) else: self.figList.append(self.figList[-1]+1) self.plotWindow.update() #tk.Tk() window self.i = self.figList[-1] else: self.i = self.figNum.get() 回答1 OptionMenu中的选项未绑定到创建它们的列表。 因此,更改列表不会更改OptionMenu,您必须自己对其进行更新。 您可以通过获取OptionMenu的menu并向其中添加命令来做到这一点。 以下示例显示了如何执行此操作(基于此答案)。 它显示,即使使用“向列表添加选项”按钮在self.options列表中附加了一个选项
  • 在Oracle触发器中,可以为行类型变量分配新旧变量吗?(In an Oracle trigger, can I assign new and old to a rowtype variable?)
    问题 我的任务是实现几个触发器脚本,并且我从同事那里获得了一些示例以供工作。 在这种情况下,他们使用pl-sql条件语句进行更新/插入/删除,以及巨大的插入语句(在另一个表中)。 这些插入语句除了值以new或old前缀之外没有其他变化。 我以为我会很聪明,请尝试使用以下方法使我的紧凑一些: DECLARE vRow SATURN.SPRCMNT%ROWTYPE; BEGIN IF UPDATING THEN vRow := :NEW; ELSIF INSERTING THEN vRow := :NEW; ELSIF DELETING THEN vRow := :OLD; END IF; -- Not the real insert statement INSERT INTO blah (columns) VALUES (vRow.somecolumns); END; 我从编译系统得到以下信息: 10/13 PLS-00049: bad bind variable 'NEW' 13/13 PLS-00049: bad bind variable 'NEW' 16/13 PLS-00049: bad bind variable 'OLD' 显然它不喜欢这样。 有什么可以实现我正在尝试的东西吗? :new和:old不是真正的行类型吗? 将本质上相同的代码重复3次似乎很愚蠢
  • 二维矩阵中的范围更新和查询(Range update and querying in a 2D matrix)
    问题 我没有场景,但问题就在这里。 这是一个只是让我发疯。 有一个 nxn 布尔矩阵,最初所有元素都是 0,n <= 10^6 并作为输入给出。 接下来将有多达 10^5 个查询。 每个查询都可以将 c 列的所有元素设置为 0 或 1,或者将 r 行的所有元素设置为 0 或 1。可以有另一种类型的查询,打印 c 列或 r 行中 1 的总数。 我不知道如何解决这个问题,任何帮助将不胜感激。 显然,每个查询的 O(n) 解决方案是不可行的。 回答1 使用数字对修改进行排序的想法来自 Dukeling 的帖子。 我们将需要 2 个映射和 4 个二叉索引树(BIT,又名 Fenwick Tree):1 个映射和 2 个用于行的 BIT,以及用于列的 1 个映射和 2 个 BIT。 让我们称它们为m_row 、 f_row[0]和f_row[1] ; m_col , f_col[0]和f_col[1]分别。 映射可以用数组、树状结构或散列来实现。 这 2 个映射用于存储对行/列的最后修改。 由于最多可以有 10 5 次修改,您可以使用这一事实来节省简单数组实现的空间。 BIT 有 2 个操作: adjust(value, delta_freq) ,它通过delta_freq量调整value的频率。 rsq(from_value, to_value) ,(rsq 代表范围总和查询
  • tkinter progressbar-链接到功能吗?(tkinter progressbar - linked to function?)
    问题 我在理解tkinter(python 2.7)中的Progressbar小部件时遇到了一些麻烦,但是我仍然不明白如何将Progressbar本身(以“确定”模式)链接到我的函数。 有没有人有关于如何将功能的完成与进度条更新链接的示例? 我确实对此进行了研究,但找不到任何有用的信息。 关于我的(已经工作的)代码的注释-代码运行时会创建一个.txt文件,该文件将打印功能总数和正在运行的当前功能。 我想将progressbar与这些.txt文件中的信息链接。 编辑 更具体地说,如何获得将值更改为正确数字的值? 回答1 工作示例-您可以在两种类型的进度栏中看到当前值和最大值。 -- 您可以在函数(在MainWindow类内部self.var_det.set()中使用self.var_ind.set()或self.var_det.set() )来更新进度条。 -- 如果您的函数在类之外,则必须使用self.var_ind或self.var_det作为参数来调用它。 your_function(self.var_det) 和内部功能使用它 def your_function(progress): progress.set(10) # set new value progress.set( progress.get() + 23 ) # add 23 to current value
  • Game of Life - Overwriting the current generation instead of updating to the next
    Below I have added my game of life code. The rules are defined correctly, and it runs smoothly. However, the game does not work as supposed. It is not updating to the next generation, but it seems to be overwriting the current generation. As an example: Three horizontal dots are supposed to turn into three vertical dots in the next generation, but this does not happen. The solution: I have two generations, the current and the next generation. It has to apply the rules to the current generation and update them in the next generation. Then it has to overwrite the current generation with the next
  • 【故障处理】队列等待之enq: TX - row lock contention
    【故障处理】队列等待之enq: TX - row lock contention 1 BLOG文档结构图 2 前言部分 2.1 导读和注意事项各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识,~O(∩_∩)O~:① enq: TX - row lock contention等待事件的解决② 一般等待事件的解决办法③ 队列等待的基本知识④ ADDM的使用⑤ 如何获取历史执行计划⑥ 查询绑定变量的具体值⑦ 很多有用的查询性能的SQL语句 本文如有错误或不完善的地方请大家多多指正,ITPUB留言或QQ皆可,您的批评指正是我写作的最大动力。 3 故障分析及解决过程 3.1 故障环境介绍 项目source dbdb 类型RACdb version11.2.0.4.0db 存储ASMOS版本及kernel版本AIX 64位 7.1.0.0 3.2 故障发生现象及报错信息早上同事过来跟我说昨天有一套数据库做压力测试的时候,CPU利用率很高,他已经抓取当时的AWR,让我帮忙分析分析,下边我们来看看AWR中的数据: 从AWR报告的头部可以分析得到,数据库为RAC库,11.2.0.4版本,AIX64位系统,有32颗CPU,共48G内存,收集了40分钟内的AWR报告,但是DB Time有15180分钟,约为15180/40=379倍,说明这段时间内系统的负载异常的大
  • 时间戳记(自动)何时更新?(When is a timestamp (auto) updated?)
    问题 如果我在TIMESTAMP类型的表中有一列并且具有默认值:CURRENT_TIMESTAMP,如果我更新同一行中任何其他列的值,此列是否会更新为当前时间戳? 似乎没有,但是我不确定这是否应该发生。 我不明白这是什么意思(来自MySQL文档): 如果该列是自动更新的,则当该行中任何其他列的值从其当前值更改时,它将自动更新为当前时间戳。 如果所有其他列均设置为其当前值,则该列保持不变。 为防止当其他列更改时该列更新,请将其显式设置为当前值。 即使在其他列未更改的情况下也要更新该列,请将其显式设置为应具有的值] 2 回答1 给命令SHOW CREATE TABLE whatever 然后查看表定义。 它可能有这样一条线 logtime TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, 在里面。 DEFAULT CURRENT_TIMESTAMP表示没有显式时间戳设置的任何INSERT使用当前时间。 同样, ON UPDATE CURRENT_TIMESTAMP表示没有显式时间戳的任何更新都会导致当前时间戳值的更新。 您可以在创建表时控制此默认行为。 或者,如果第一时间未正确创建时间戳列,则可以对其进行更改。 ALTER TABLE whatevertable CHANGE
  • 所有列都设置为相同的值(All columns being set to the same value)
    问题 我完全不知道我的脚本有什么问题。 JSON 数据正确输入,变量 $i 和 $current 在 forloop 的每个阶段都应该是它们。 它似乎一直在用 id 更新我的数据库,所以在 id 为 11 的情况下,它将用数字 11 更新所有列。 这是我的脚本: if($mode == 'SAVE_BUYING_ROW') { $JSON = (array)$JSON ; include('pdoconnect.php') ; $result = $dbh->prepare("UPDATE parts_trading_instructions SET quantity = ?, supplierRef = ?, currencyRef = ?, net = ?, vat = ?, shippingNet = ?, shippingVat = ?, direct = ?, ebayItemNumber = ? WHERE id = ?") ; $i = 0 ; foreach($JSON as $current) { $current = (string)$current ; if($i == 0) { $i++ ; continue ; } $result->bindParam($i, $current, PDO::PARAM_STR) ; $i++ ; } $result-
  • AngularJS / ng-grid-使用拼接更新数组不会更新UI(AngularJS/ng-grid - Updating array with splice doesn't updates UI)
    问题 我试图用array splice更新ng-grid 。 我这里有个小伙伴。 添加按钮添加新行。 更新按钮更新数组中的最后一项。 选择一行并按更新按钮。 没发生什么事。 按添加按钮。 现在,UI将使用新元素&以及以前更新的元素进行更新。 相同的行为一次又一次地重复。 我尝试了$scope.$apply 。 我得到: “错误:$ apply已经在进行中” 我什至尝试通过在setTimeout调用中放置$scope.$apply块来进行尝试。 同样是同样的错误! 任何指针! 谢谢! 回答1 这是因为ng-grid中的data $ watcher(错误地)比较了数据对象以供参考,而不是对象相等。 您可以通过在data $ watch函数(第3128行)中将第三个参数设置为true来解决此问题: $scope.$parent.$watch(options.data, dataWatcher, true); 柱塞 回答2 更新(2015-04-10) Angular改进了其代码库(1.4.0),请首先尝试$scope.$watchCollection方法,然后查看它是否对您$scope.$watchCollection 。 (关联) 回答 如果您不想入侵第三方库,可以使用以下方法在代码中添加黑客: $scope.updateData = function() { var data =
  • 在PHP中更新已选中的复选框(Updating Already Checked Checkboxes in PHP)
    问题 假设我有一个用户选择的复选框列表。 <input type="checkbox" name="utility[]" id="utility[]" value="Water" />Water<br /> <input type="checkbox" name="utility[]" id="utility[]" value="Cable" />Cable<br /> <input type="checkbox" name="utility[]" id="utility[]" value="Electricity" />Electricity<br /> etc... 用户选择“水”并将其添加到数据库中。 现在,用户想要更新列表: <input type="checkbox" name="utility[]" id="utility[]" value="Water" checked="checked"/>Water<br /> <input type="checkbox" name="utility[]" id="utility[]" value="Cable" />Cable<br /> <input type="checkbox" name="utility[]" id="utility[]" value="Electricity" />Electricity<br />
  • Java ThreadLocal静态吗?(Java ThreadLocal static?)
    问题 在“线程本地”中设置值: //Class A holds the static ThreadLocal variable. Class A{ public static ThreadLocal<X> myThreadLocal = new ThreadLocal<X>(); .... } //A Class B method sets value in A's static ThreadLocal variable class B{ { public void someBmethod(){ X x = new X(); A.myThreadLocal.set(x); } } //Class C retrieves the value set in A's Thread Local variable. Class C { public void someCMethod(){ X x = A.myThreadLocal.get(); } ... } Quesiton : 现在假设这是一个Web应用程序,并且线程按以下顺序执行:B.someBMethod,C.someCMethod。 执行B的someBMethod的多个线程最终将更新SAME A的静态ThreadLocal变量myThreadLocal,从而超出了ThreadLocal变量的目的。
  • 更新熊猫的价值(Updating value in iterrow for pandas)
    问题 我正在做一些地理编码工作,我使用selenium来筛选我需要的位置地址的xy坐标,我将xls文件导入了panda数据框,并希望使用显式循环来更新没有xy坐标的行,如下所示: for index, row in rche_df.iterrows(): if isinstance(row.wgs1984_latitude, float): row = row.copy() target = row.address_chi dict_temp = geocoding(target) row.wgs1984_latitude = dict_temp['lat'] row.wgs1984_longitude = dict_temp['long'] 我已经阅读了为什么在遍历熊猫DataFrame后该功能不能“使用”? 并且完全意识到,iterrow仅提供给我们一个视图,而不是一个供编辑的副本,但是如果我真的逐行更新值怎么办? lambda可行吗? 回答1 从iterrows中获得的行是不再与原始数据框连接的副本,因此编辑不会更改您的数据框。 值得庆幸的是,由于从iterrows中获得的每个项目都包含当前索引,因此您可以使用该索引来访问和编辑数据iterrows的相关行: for index, row in rche_df.iterrows(): if isinstance(row
  • 乐观锁和悲观锁简述
    简述乐观锁和悲观锁 乐观锁和悲观锁都是一种思想,并不是真实存在于数据库中的一种机制。 悲观锁 当认为数据被并发修改的几率比较大,需要在修改之前借助于数据库锁机制,先对数据进行加锁的思想被称为悲观锁,又称PCC(Pessimistic Concurrency Control)。在效率方面,处理锁的操作会产生了额外的开销,而且增加了死锁的机会。当一个线程在处理某行数据的时候,其它线程只能等待。 悲观锁的实现方式 悲观锁的实现是依赖于数据库提供的锁机制,流程如下: 1.修改记录前,对记录加上排他锁(exclusive locking) 2.如果加锁失败,说明这条数据正在被修改,那么当前查询要等待或者抛出异常,这由开发者决定 3.如果加锁成功,可以对这条数据修改了,事务完成解锁 4.加锁修改期间,其他事务也想对这条记录进行操作时,都要等待或者直接抛出异常 在使用mysql Innodb引擎实现悲观锁时,必须关闭mysql的自动提交属性,因为MySQL默认使用autocommit模式,也就是说,当你执行一个更新操作后,MySQL会立刻将结果进行提交。set autocommit=0; 举例说明下单扣减库存如何使用悲观锁实现 //0.开始事务 begin; //1.查询出商品库存信息 select quantity from items where id=1 for update; //2
  • jQuery - Can threads/asynchronous be done?
    I'm currently using AJAX with Django Framework. I can pass asynchronous POST/GET to Django, and let it return a json object. Then according to the result passed from Django, I will loop through the data, and update a table on the webpage. The HTML for the table: <!-- Modal for Variable Search--> <div class="modal fade" id="variableSearch" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"> <div class="modal-dialog"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span><span
  • MySQL死锁、锁、索引相关资料整理
    一次MySQL更新操作导致死锁问题的处理过程: MySQL更新使用二级索引字段导致死锁问题分析,https://blog.csdn.net/a82514921/article/details/104616763 1. MySQL文档说明 1.1 InnoDB死锁 https://dev.mysql.com/doc/refman/5.6/en/innodb-deadlocks.html 死锁是指不同的事务都无法继续的情况,由于每个事务都持有另一个需要的锁导致。因为两个事务都在等待资源可用,所以它们都不会释放它所拥有的锁。 当事务锁定多个表中的行(通过如UPDATE或SELECT ... FOR UPDATE之类的语句),但是顺序相反时,会发生死锁。当语句锁定索引记录和间隙的范围时,也会发生死锁,由于时间问题,每个事务都获得了一些锁,但没有其他锁。 死锁的发生与事务隔离级别无关,因为事务隔离级别改变读操作的行为,而死锁是由于写操作导致的。 当死锁发生时,InnoDB会检测到该情况并回滚其中一个事务(受害者)。因此,即使应用程序逻辑正确,也必须处理需要重试事务的情况。 使用“SHOW ENGINE INNODB STATUS”命令,可以查看InnoDB用户最后发生的死锁。如果频繁出现死锁突出显示事务结构或应用程序错误处理问题,请在启用innodb_print_all
  • 重新排序/重置自动递增主键(Reorder / reset auto increment primary key)
    问题 我有一个带有自动递增主键的MySQL表。 我删除了表中间的一些行。 现在,例如,我在ID列中有类似的内容:12、13、14、19、20。我删除了15、16、17和18行。 我想重新分配/重置/重新排序主键,以便保持连续性,即将19设为15,将20设为16,依此类推。 我该怎么做? 回答1 您可以删除主键列并重新创建它。 然后应按顺序重新分配所有ID。 但是,在大多数情况下,这可能不是一个好主意。 如果您还有其他具有此表外键的表,则绝对不能使用。 回答2 即使这个问题看起来已经很老了,也会为到达此处搜索的人发布答案。 SET @count = 0; UPDATE `users` SET `users`.`id` = @count:= @count + 1; 如果将该列用作其他表中的外键,请确保对这些表中的外键关系使用ON UPDATE CASCADE而不是默认的ON UPDATE NO ACTION 。 此外,为了重置AUTO_INCREMENT计数,您可以立即发出以下语句。 ALTER TABLE `users` AUTO_INCREMENT = 1; 对于MySQL,它将值重置为MAX(id) + 1 。 回答3 要重置用户表的ID,请使用以下SQL查询。 上面已经说过,这将破坏您与其他任何表的任何关系。 ALTER TABLE `users` DROP `id`