sql 分组排序

srt266 2008-10-28 11:59:32
有表1:
type state wage
a 1 50
a 2 100
a 3 150
a 4 200
s 8 300
s 9 400
s 12 500
写到表2,如下:
type start end sum
a 1 4 500
s 8 9 700
s 12 12 500
写出SQL操作语句。
请问各位大虾怎么写? 谢谢!
...全文
143 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
srt266 2008-10-28
  • 打赏
  • 举报
回复
state 需要连续 谢谢两位的回复
时光瞄 2008-10-28
  • 打赏
  • 举报
回复
select type,min(state) as start,max(state) as end,sum(wage) from tb group by type
szflower 2008-10-28
  • 打赏
  • 举报
回复
select type,min(state) as start,max(state) as end,sum(wage) as sum
group by type
jimoshatan 2008-10-28
  • 打赏
  • 举报
回复


CREATE TABLE #A (TYPE VARCHAR(10),STATE INT,WAGE INT)
INSERT INTO #A SELECT 'A',1,50
INSERT INTO #A SELECT 'A',2,100
INSERT INTO #A SELECT 'A',3,150
INSERT INTO #A SELECT 'A',4,200
INSERT INTO #A SELECT 'S',8,300
INSERT INTO #A SELECT 'S',9,400
INSERT INTO #A SELECT 'S',12,500




SELECT IDENTITY(INT,1,1)SORT_NO,* INTO #C FROM #A ORDER BY TYPE,STATE

SELECT TYPE,MIN(STATE)STATE,MAX(STATE)[END],SUM(WAGE)SUM
FROM #C
GROUP BY TYPE,(STATE-SORT_NO)

DROP TABLE #A,#C
jimoshatan 2008-10-28
  • 打赏
  • 举报
回复


CREATE TABLE #A (TYPE VARCHAR(10),STATE INT,WAGE INT)
INSERT INTO #A SELECT 'A',1,50
INSERT INTO #A SELECT 'A',2,100
INSERT INTO #A SELECT 'A',3,150
INSERT INTO #A SELECT 'A',4,200
INSERT INTO #A SELECT 'S',8,300
INSERT INTO #A SELECT 'S',9,400
INSERT INTO #A SELECT 'S',12,500

CREATE TABLE #B (TYPE VARCHAR(10),STATE INT,WAGE INT,SORT_NO INT)
INSERT INTO #B
SELECT A.*, Sort_NO= (SELECT count(1) FROM #A B where B.TYPE = A.TYPE and B.STATE <=A.STATE) FROM #A A

SELECT TYPE,MIN(STATE)STATE,MAX(STATE)[END],SUM(WAGE)SUM
FROM #B
GROUP BY TYPE,(STATE-SORT_NO)
DROP TABLE #A,#B

/**
A 1 4 500
S 8 9 700
S 12 12 500

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧