sql-这种统计SQL ,怎么写啊。。。。

问题描述

这种统计SQL ,怎么写啊。。。。

现在的表结果:
Id Num OrderIndex
A1 3 1
A2 2 2
A3 3 3
B1 1 4
B2 4 5

想实现的结果:
Id Num

A1 3

A2 5

A3 8

B1 9

B2 13

统计后的结果:
根据OrderIndex排序,
每一行的Num的值为 小于等于当前行的OrderIndex的所有Num汇总。

解决方案

select B. id,(select num(*) from table as A where A.oerderIndex<=B.orderIndex )
from table as B
order by B.orderIndex

大底应该就是这么一个思路 你试试 如果不行了 在下面留言

解决方案二:

CREATE TABLE AA
(
Id nvarchar(10), Num int ,OrderIndex int
)
INSERT INTO AA(Id, Num,OrderIndex)VALUES('A1',3,1)
INSERT INTO AA(Id, Num,OrderIndex)VALUES('A2',2,2)
INSERT INTO AA(Id, Num,OrderIndex)VALUES('A3',3,3)
INSERT INTO AA(Id, Num,OrderIndex)VALUES('B1',1,4)
INSERT INTO AA(Id, Num,OrderIndex)VALUES('B2',4,5)
INSERT INTO AA(Id, Num,OrderIndex)VALUES('B3',5,6)
select B. id,(select sum(num) from AA as A where A.orderIndex<=B.orderIndex )
from AA as B
order by B.orderIndex

解决方案三:

oracle分析函数可以直接实现,不知道楼主是不是oracle

解决方案四:

SUM( Num) OVER (ORDER BY OrderIndex )

时间: 2024-11-02 06:36:21

sql-这种统计SQL ,怎么写啊。。。。的相关文章

列转行-SQL语句统计问题,不想写union all

问题描述 SQL语句统计问题,不想写union all 建表测试语句: CREATE TABLE stbuu_cause109_20160331 ( intenbid BIGINT, intrsrp00 BIGINT, intrsrp01 BIGINT, intrsrp02 BIGINT, intrsrp03 BIGINT, intrsrp04 BIGINT, intrsrp05 BIGINT, intrsrp06 BIGINT ); 插入测试数据: INSERT INTO stbuu_caus

图片-mysql分段数据统计sql怎么写

问题描述 mysql分段数据统计sql怎么写 , 1. 这是一张班级的成绩表,想统计出每个成绩段的数据,mysql的sql语句该怎么写呢. 解决方案 select '60分以下' type, count(*) from student s where s.score < 60 union all select '60分以上70分以下' type,count(*) from student s where s.score < 70 and s.score > 60 union all se

SQL查询统计问题,where后面的条件

问题描述 SQL查询统计问题,where后面的条件 这是Select Distinct WeldercodejointnoResultB from NDT_Record 查询后的结果,我想去掉有有不合格的记录的相同jointno的记录where后面该怎么写? 因为有不合格,所以查询后结果5,6条记录就没有了, 解决方案 Select Distinct WeldercodejointnoResultB from NDT_Record A where not exist(select 1 from

那在sql server中该怎么写才能达到mysql中的分组效果呢,分出的结果不一样

问题描述 那在sql server中该怎么写才能达到mysql中的分组效果呢,分出的结果不一样 SELECT CASE WHEN AGE <= 10 THEN '1' WHEN AGE > 10 AND AGE <= 20 THEN '2' WHEN AGE > 20 AND AGE <= 30 THEN '3' WHEN AGE > 30 AND AGE <= 40 THEN '4' WHEN AGE > 40 AND AGE <= 50 THEN

sql-用C#写服务器程序连接本地SQL SERVER,该怎么写?

问题描述 用C#写服务器程序连接本地SQL SERVER,该怎么写? protected void ImageButton1_Click(object sender, EventArgs e) { string UserName = Request.Form["Username"].ToString().Trim(); string UserPwd = Request.Form["pwd"].ToString().Trim(); SqlConnection scon

sql server统计一个字段出现的次数的问题

问题描述 sql server统计一个字段出现的次数的问题 从选课表和课程表中查询每门选修课的人数,查询结果中显示人数.课程名称,按人数降序排序sc表sid cid grade2005216001 16020010 96.02005216001 16020011 80.02005216002 16020010 67.02005216003 16020012 78.02005216003 16020013 87.02005216003 16020014 85.02005216111 1602001

Java编写一个图书管理系统,要使用JDVC技术访问,带有SQL数据库,请问怎么写

问题描述 Java编写一个图书管理系统,要使用JDVC技术访问,带有SQL数据库,请问怎么写 Java编写一个图书管理系统,要使用JDVC技术访问,带有SQL数据库,请问怎么写 解决方案 http://download.csdn.net/detail/u014029255/8284261 解决方案二: 1.写界面 2.写数据库连接 3.写数据库的增删改查 4.处理细节

oracle sql语句统计数据写法

问题描述 oracle sql语句统计数据写法 有3张表,A表活动B表活动地区C表地区商家 A表关联B表,B表关联C表都是一对多,现在需返回活动名称,活动地区数,地区商家数 解决方案 SELECT A.活动名称COUNT(1)SUM(SELECT COUNT(1) FROM C WHERE A=B AND B=C) FROM A INNER JOIN B ON A=B GROUP BY A.活动名称 解决方案二: SELECT T1.活动 AS 活动名称 COUNT(T2.地区) AS 活动地区

asp.net-C# 由于项目特许 全部用sql 直接拼接的 能否写一个过滤器去掉特殊字符

问题描述 C# 由于项目特许 全部用sql 直接拼接的 能否写一个过滤器去掉特殊字符 http://localhost:14220/Login.aspx? EquipType='iPhone&Soft=+zb.s20140213092229565 asp.net 能否写一个过滤器 过滤掉里面传的特殊字符 那样我就不用到每个页面去加 过滤了 解决方案 上面例子哪些要去掉?