统计得分难题

luckljtchinaren 2007-09-13 03:23:32
一套测试,测试人员name列,测试难度THard有三个等级1、2、3,每人最多测试四次。
求根据Record表记录了各人通过测试的情况统计各人最终得分等级。

各人最终得分等级算法:
1.取测试通过次数最多的难度等级(THard)为该人的最终得分等级。
例: A的难度等级1通过的次数为2,其他难度等级(2,3)测试通的次数都为1,A最终等级为2.

2.当出现通过次数最多为2的难度等级有两个时,取两个难度中最难的为最终得分等级。
例:B的通过次数为2的难度等级为难度2和3,则B最终等级为3.

3.当出现通过次数最多为1的难度等级有两个及以上时,取最低难度的为最终得分等级。
例:D通过难度2和3的次数都是1,D的最终等级为2.


Record表
----------------
ID name THard
1 A 1
2 A 1
3 A 2
4 A 3
5 B 2
6 B 3
7 B 3
8 B 2
8 C 1
9 D 2
10 D 3
11 E 3
... ... ...

请各位帮忙解决一下,想了很久没想出来,谢谢!
...全文
250 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
SoftwKLC 2007-09-13
  • 打赏
  • 举报
回复
路过
hbjlwhl 2007-09-13
  • 打赏
  • 举报
回复
学习
wgzaaa 2007-09-13
  • 打赏
  • 举报
回复
标记下
silver_zhao 2007-09-13
  • 打赏
  • 举报
回复
用触发器把值计算一下,放到一个新表里面。然后查询这个新表就行了
anison 2007-09-13
  • 打赏
  • 举报
回复
mark~~~
子陌红尘 2007-09-13
  • 打赏
  • 举报
回复
declare @Record table(ID int,name varchar(4),THard int)
insert into @Record values(1 ,'A',1)
insert into @Record values(2 ,'A',1)
insert into @Record values(3 ,'A',2)
insert into @Record values(4 ,'A',3)
insert into @Record values(5 ,'B',2)
insert into @Record values(6 ,'B',3)
insert into @Record values(7 ,'B',3)
insert into @Record values(8 ,'B',2)
insert into @Record values(8 ,'C',1)
insert into @Record values(9 ,'D',2)
insert into @Record values(10,'D',3)
insert into @Record values(11,'E',3)


select
distinct t.name,t.THard
from
@Record t
where
t.THard=(select
top 1 THard
from
(select Name,THard,Count(*) as num from @Record group by Name,THard) s
where
name=t.name
order by
Name,
Num desc,
(case when Num=2 then THard else 9 end) desc,
(case when Num=1 then THard else 9 end) asc)

/*
name THard
---- -----------
A 1
B 3
C 1
D 2
E 3
*/
mengmou 2007-09-13
  • 打赏
  • 举报
回复
怎么是马甲,登录错了。
mengnnou 2007-09-13
  • 打赏
  • 举报
回复
A应该是1级吧。


--建立测试环境
create table Record(ID int,name varchar(10),THard int)
insert Record(ID,name,THard)
select '1','A','1' union all
select '2','A','1' union all
select '3','A','2' union all
select '4','A','3' union all
select '5','B','2' union all
select '6','B','3' union all
select '7','B','3' union all
select '8','B','2' union all
select '8','C','1' union all
select '9','D','2' union all
select '10','D','3' union all
select '11','E','3'
go
--执行测试语句
create view v_record
as
select R.name,THard,count(1) as counts
from Record R
group by name,THard
go
select *
from v_record r
where not exists(
select 1 from v_record
where r.name = name
and(
r.counts < counts
or r.counts = 1 and counts = 1 and r.THard > THard
or r.counts > 1 and counts > 1 and r.counts = counts and r.THard < THard
)
)
go
--删除测试环境
drop table Record
drop view v_record
go
/*--测试结果
name THard counts
---------- ----------- -----------
A 1 2
B 3 2
C 1 1
D 2 1
E 3 1

(所影响的行数为 5 行)
*/



【更新至2025年】2001-2025年上市公司数字化转型年报词频统计(吴非、赵宸宇、甄红线)(300+年报词频统计) 1、时间:2001-2025年 2、来源:上市公司年报 3、参考文献:企业数字化转型与资本市场表现——来自股票流动性的经验证据(吴非) 数字化转型如何影响企业全要素生产率(赵宸宇) 知识产权行政保护与企业数字化转型(甄红线) 4、方法说明:(1)参考吴非老师的做法,对人工智能技术、大数据技术、云计算技术、区块链技术、数字技术运用五个维度76个数字化相关词频进行统计 (2)参考赵宸宇老师的做法,对数字技术应用、互联网商业模式、智能制造、现代信息系统四个维度99个数字化相关词频进行统计 (3)参考甄红线老师的做法,对技术分类、组织赋能、数字化应用等类别下139个数字化相关词频进行统计 5、指标:年份、股票代码、公司简称、行业名称、行业代码、全文-文本总长度、仅中英文-文本总长度、人工智能技术-吴、大数据技术-吴、云计算技术-吴、区块链技术-吴、数字技术运用-吴、数字技术应用-赵、互联网商业模式-赵、智能制造-赵、现代信息系统-赵、技术分类-人工智能技术-甄、技术分类-区块链技术-甄、技术分类-云计算技术-甄、技术分类-大数据技术-甄、组织赋能-人工智能技术-甄、组织赋能-云计算技术-甄、组织赋能-大数据技术-甄、组织赋能-广义数字技术-甄、数字化应用-技术创新-甄、数字化应用-流程创新-甄、数字化应用-业务创新-甄、人工智能、商业智能、图像理解、投资决策辅助系统、智能数据分析、智能机器人、机器学习、深度学习、语义搜索、生物识别技术、人脸识别、语音识别、身份验证、自动驾驶、自然语言处理、大数据、数据挖掘、文本挖掘、数据可视化、异构数据、征信、增强现实、混合现实、虚拟现实、云计算、流计算、图计算、内存计算、多方安全计算、类脑计算、绿色计算、认知计算等300+词频

27,581

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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