如何应用SUM操作而不在SQL中分组结果?
发布时间:2020-12-12 08:46:45 所属栏目:MsSql教程 来源:网络整理
导读:我有一张这样的桌子: +----+---------+----------+| id | group | value |+----+---------+----------+| 1 | GROUP A | 0.641028 | | 2 | GROUP B | 0.946927 | | 3 | GROUP A | 0.811552 | | 4 | GROUP C | 0.216978 | | 5 | GROUP A | 0.650232 | +----+--
我有一张这样的桌子:
+----+---------+----------+ | id | group | value | +----+---------+----------+ | 1 | GROUP A | 0.641028 | | 2 | GROUP B | 0.946927 | | 3 | GROUP A | 0.811552 | | 4 | GROUP C | 0.216978 | | 5 | GROUP A | 0.650232 | +----+---------+----------+ 如果我执行以下查询: SELECT `id`,SUM(`value`) AS `sum` FROM `test` GROUP BY `group`; 我显然得到: +----+-------------------+ | id | sum | +----+-------------------+ | 1 | 2.10281205177307 | | 2 | 0.946927309036255 | | 4 | 0.216977506875992 | +----+-------------------+ 但我需要像这样的桌子: +----+-------------------+ | id | sum | +----+-------------------+ | 1 | 2.10281205177307 | | 2 | 0.946927309036255 | | 3 | 2.10281205177307 | | 4 | 0.216977506875992 | | 5 | 2.10281205177307 | +----+-------------------+ 其中相加行被明确地重复. 有没有办法获得这个结果,而不使用多个(嵌套)查询? 解决方法它将依赖于您的SQL Server,在Postgres / Oracle中我将使用Window函数.在MySQL …不可能afaik.也许你可以这样假装: SELECT a.id,SUM(b.value) AS `sum` FROM test AS a JOIN test AS b ON a.`group` = b.`group` GROUP BY a.id,b.`group`; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |