求sql语句

1嫌抄袭,查询涉嫌抄袭的人员名单,结果列输出身份证、姓名

FineReport 帆软用户Ps0Ug6VIyZ 发布于 2022-9-14 22:29 (编辑于 2022-9-17 10:37)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
lxy2Lv6中级互助
发布于2022-9-15 08:25

with a as(

select 'a' as 姓名,56 as 分数,1 as id,'a1' as 身份证号

union all

select 'a' as 姓名,68 as 分数,2 as id,'a1' as 身份证号

union all

select 'b' as 姓名,54 as 分数,2 as id,'b1' as 身份证号

union all

select 'b' as 姓名,50 as 分数,3 as id,'b1' as 身份证号

union all

select 'c' as 姓名,50 as 分数,4 as id,'c1' as 身份证号

)

--第一种

select 姓名,count(姓名) as 考核次数,

case when max(分数)>=60 then '考核通过'

     else '考核不通过'

end as 考核结果

from a

group by 姓名

--第二种

select a1.姓名,a1.身份证号 from (

select 姓名,id,身份证号 from a group by 姓名,id,身份证号

)a1

inner join (

select id,count(姓名) as 作弊次数

from a

group by id

having(count(姓名))>=2) b on a1.id=b.id

最佳回答
0
weibwLv7高级互助
发布于2022-9-15 08:19

 

SELECT dbo.Test.TNAME,a. OPENID,a.SCORES,a.INSERTTIME FROM dbo.Test 

JOIN (SELECT OPENID,MIN(INSERTTIME)AS INSERTTIME,MAX(SCORES) AS SCORES FROM dbo.Test GROUP BY OPENID HAVING COUNT(OPENID)>1) AS a 

ON dbo.Test.OPENID=a.OPENID AND a.INSERTTIME = Test.INSERTTIME

数据表TEST

img

执行结果

img

最佳回答
0
jenniferjunLv4初级互助
发布于2022-9-15 08:58

1.合格人员

SELECT distinct card_id, TNAME from  tablename  where SCORES>=60

2.考核多次人员

SELECT TNAME, cs, RIGHT (考核结果, LENGTH ( 考核结果) - 1 ) 考核结果 FROM ( SELECT card_id, TNAME, COUNT ( * ) cs, ( SELECT SCORES  FROM tablename b  WHERE a.card_id= b.card_id  FOR XML PATH ( ',' )  ) 考核结果 FROM tablename a  GROUP BY card_id, TNAME  ) ss

3.抄袭人员

SELECT card_id, TNAME  FROM TableName  WHERE OPENID IN ( SELECT OPENID FROM ( ( SELECT DISTINCT OPENID, card_id FROM TableName ) ) GROUP BY OPENID HAVING COUNT ( * ) > 0 )

  • 3关注人数
  • 331浏览人数
  • 最后回答于:2022-9-17 10:37
    请选择关闭问题的原因
    确定 取消
    返回顶部