新的问题又来拉~~50分~一个数据统计及排序问题,高手起来帮帮忙呀~~

ljjable 2006-05-12 04:34:33
刚才已经提过一个类似问题了,但是现在新问题又来老~~
我现在有一张表,如:
wid 办事单位 得分数 处理文件 战法确认
1 AA 5 3 串
2 AA 6 2 并
3 BB 3 1 串
4 CC 5 2 并
5 CC 7 5 串
6 BB 4 2 并
7 AA 1 1 串

想实现的结果如下:
序号 名次 办事单位 累计分数 处理文件数 串型
1 1 AA 12 6 2
2 1 CC 12 7 1
3 3 BB 7 3 1

就是说想以办事单位为group by 然后统计每个单位累计分数和处理文件数目
最后以累计分数来排序,以确定名次(注意:名字可能会出现分数相同的时候名次也相同),
还需要统计的就是每个单位的串型有多少个~~
能有拿位高手能帮帮忙吗~~~~在线等待中~
...全文
85 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
huailairen 2006-05-12
  • 打赏
  • 举报
回复
序号在程序里实现。
huailairen 2006-05-12
  • 打赏
  • 举报
回复
create table tbx(wid int, 办事单位 varchar(10), 得分数 int ,处理文件 int, 战法确认 varchar(2))
insert into tbx select
1, 'AA', 5, 3, '串' union all select
2, 'AA', 6, 2, '并' union all select
3, 'BB', 3, 1, '串' union all select
4, 'CC', 5, 2, '并' union all select
5, 'CC', 7, 5, '串' union all select
6, 'BB', 4, 2, '并' union all select
7, 'AA', 1, 1, '串'
go


create view a
as
(select 办事单位,sum(得分数) as 累计分数 ,sum(处理文件) as 处理文件数,sum(case when 战法确认 ='串' then 1 else 0 end) as 串型
from tbx
group by 办事单位
)

select a.* ,(select count(*)+1 from a bx where bx.累计分数>a.累计分数 ) as 名次
from a
order by a.累计分数 desc


办事单位 累计分数 处理文件数 串型 名次
---------- ----------- ----------- ----------- -----------
AA 12 6 2 1
CC 12 7 1 1
BB 7 3 1 3

(所影响的行数为 3 行)
昵称被占用了 2006-05-12
  • 打赏
  • 举报
回复
select 办事单位,sum(得分数) as 得分数,sum(处理文件) as 处理文件,
sum(case when 战法确认='串' then 1 else 0 end) as 串型
into #
from 一张表
group by 办事单位

select 1+(select count(*) from # where 得分数> a.得分数) as 名次,
得分数,处理文件,串型
from #a
order by 得分数 desc

序号就不加了

dulei115 2006-05-12
  • 打赏
  • 举报
回复
if object_id('test') is not null drop table test
select 1 as wid, 'AA' as 办事单位, 5 as 得分数, 3 as 处理文件, '串' as 战法确认
into test
union select 2, 'AA', 6, 2, '并'
union select 3, 'BB', 3, 1, '串'
union select 4, 'CC', 5, 2, '并'
union select 5, 'CC', 7, 5, '串'
union select 6, 'BB', 4, 2, '并'
union select 7, 'AA', 1, 1, '串'
-----------------------------------
if object_id('tempdb..#') is not null drop table #

select 办事单位, sum(得分数) as 累计分数, sum(处理文件) as 处理文件数, sum(case 战法确认 when '串' then 1 else 0 end) as 串型
into #
from test
group by 办事单位

select (select count(1) + 1 from # where 累计分数 > a.累计分数 or (累计分数 = a.累计分数 and 办事单位 < a.办事单位)) as 序号,
(select count(1) + 1 from # where 累计分数 > a.累计分数) as 名次, a.*
from # a
order by 序号
/*
序号 名次 办事单位 累计分数 处理文件数 串型
1 1 AA 12 6 2
2 1 CC 12 7 1
3 3 BB 7 3 1
*/
drop table #
-----------------------------------
drop table test
大家都知道,每次在PS里面参考线是一件很痛苦的事情,特别是要按照规定的宽度创建Grid的时候,而这回,Cameron Mcefee提供了一个插件“GuideGuide”,如其名,的确是非常方便的一款创建参考线的插件。 今天为大家介绍一款非常实用的PS小插件GuideGuide,它提供了一个非常便捷的方式生成像素级别的辅助线(栏,行,中线……) 想像一下在PS里面创建好一组多栏目的辅助线:页面多宽,2栏目还是3栏,栏里面又有多少个栏……数学不好的同学估计手心都开始冒汗了。确实,在PS里面创建网格是个非常痛苦的事情,不少设计同学都是大概估算一下宽高来辅助线;或者画一个矢量图形,然后复制移动来列。如果总的宽度有了变化之后,又将他们整体宽来重列。没耐心的人估计已经开始喊:“我是设计师,不是数学家”,有耐心的人会重算过一遍之后再来,还有公式如下: (页面宽度 – (间隙宽度 x (栏数 – 1) ))÷ 栏数 = 栏目宽 看起来是不是有点想暴走?设计个页面还要搞这么复杂的东西。 实用的小工具GuideGuide来了 为啥要把时间花在数学上,而不是省心一点,留出多一点时间来将设计做得更好呢?只要输入一些数字,GuideGuide就会利用PS里面的辅助线自动的在你的文档中划好网格。当你用了之后就会由衷的觉得:很好很强大。而且,它真正的强大之处在于:支持选框工具–如果你的文档中有选框的话,它可以在选区内生成对应的辅助线。 栏与列 页面需要栏和等比间隙?GuideGuide轻松搞定 找到中点 GuideGuide让你找到对象的中点变得易如反掌,只要画一个选区或者在图层面板(ctrl + 鼠标左键)创建一个选区,然后点击中点按钮,就可以立即创 建中点线。 然后将此列中的其他元素根据需要来对齐 存储常用的划为选项 如果你经常用同一种网格划方式,可以存储为选项方便以后随时调用 发挥你的创造力 GuideGuide有栏,有边距,有中点…… 发挥你的想象力它可以做的更多 划导航 当你要将一定宽度的导航划为N等栏的时候,是不是又要计算宽度了?现在不用烦恼了,用GuideGuide吧 1.用选区工具画一个你导航宽度的选区 2.输入你导航的栏数以及他们之间的间距 等边距矩形绘制 当你想绘制一个与你当前元素等边距的矩形,是不是又要计算了? 1.在图层面板(ctrl + 鼠标左键)创建选区 2.在边距栏输入一个负数,然后点击图标,GuideGuide会自动输入四边等距的指数,然后回车创建辅助线 3.根据创建的辅助线绘制四边等距离的矩形 基准线网格绘制 利用GuideGuide便捷的行高设置,轻松创建整页的横向对齐基准线 1.输入你想要的行高 2.将你页面中的元素相应的对齐 剩余像素配 在栏的时候不是永远都能完美的等,如果你要在一个10px宽度内3栏,那么多余的像素怎么办?设置里面的剩余像素配设置决定将多余的像素配到哪里,默认是“右下角”
大家都知道,每次在PS里面参考线是一件很痛苦的事情,特别是要按照规定的宽度创建Grid的时候,而这回,Cameron Mcefee提供了一个插件“GuideGuide”,如其名,的确是非常方便的一款创建参考线的插件。 今天为大家介绍一款非常实用的PS小插件GuideGuide,它提供了一个非常便捷的方式生成像素级别的辅助线(栏,行,中线……) 想像一下在PS里面创建好一组多栏目的辅助线:页面多宽,2栏目还是3栏,栏里面又有多少个栏……数学不好的同学估计手心都开始冒汗了。确实,在PS里面创建网格是个非常痛苦的事情,不少设计同学都是大概估算一下宽高来辅助线;或者画一个矢量图形,然后复制移动来列。如果总的宽度有了变化之后,又将他们整体宽来重列。没耐心的人估计已经开始喊:“我是设计师,不是数学家”,有耐心的人会重算过一遍之后再来,还有公式如下: (页面宽度 – (间隙宽度 x (栏数 – 1) ))÷ 栏数 = 栏目宽 看起来是不是有点想暴走?设计个页面还要搞这么复杂的东西。 实用的小工具GuideGuide来了 为啥要把时间花在数学上,而不是省心一点,留出多一点时间来将设计做得更好呢?只要输入一些数字,GuideGuide就会利用PS里面的辅助线自动的在你的文档中划好网格。当你用了之后就会由衷的觉得:很好很强大。而且,它真正的强大之处在于:支持选框工具–如果你的文档中有选框的话,它可以在选区内生成对应的辅助线。 栏与列 页面需要栏和等比间隙?GuideGuide轻松搞定 找到中点 GuideGuide让你找到对象的中点变得易如反掌,只要画一个选区或者在图层面板(ctrl + 鼠标左键)创建一个选区,然后点击中点按钮,就可以立即创 建中点线。 然后将此列中的其他元素根据需要来对齐 存储常用的划为选项 如果你经常用同一种网格划方式,可以存储为选项方便以后随时调用 发挥你的创造力 GuideGuide有栏,有边距,有中点…… 发挥你的想象力它可以做的更多 划导航 当你要将一定宽度的导航划为N等栏的时候,是不是又要计算宽度了?现在不用烦恼了,用GuideGuide吧 1.用选区工具画一个你导航宽度的选区 2.输入你导航的栏数以及他们之间的间距 等边距矩形绘制 当你想绘制一个与你当前元素等边距的矩形,是不是又要计算了? 1.在图层面板(ctrl + 鼠标左键)创建选区 2.在边距栏输入一个负数,然后点击图标,GuideGuide会自动输入四边等距的指数,然后回车创建辅助线 3.根据创建的辅助线绘制四边等距离的矩形 基准线网格绘制 利用GuideGuide便捷的行高设置,轻松创建整页的横向对齐基准线 1.输入你想要的行高 2.将你页面中的元素相应的对齐 剩余像素配 在栏的时候不是永远都能完美的等,如果你要在一个10px宽度内3栏,那么多余的像素怎么办?设置里面的剩余像素配设置决定将多余的像素配到哪里,默认是“右下角”

34,588

社区成员

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

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