当前位置: 首页 > wzjs >正文

阜城网站建设代理凡科快图下载

阜城网站建设代理,凡科快图下载,基础微网站开发可信赖,南宁网站备案目录 需求 范例运行环境 数据样本设计 功能实现 上传EXCEL文件到数据库 SQL语句 小结 需求 在日常的应用中,排查列重复记录是经常遇到的一个问题,但某些需求下,需要我们排查一组列之间是否有重复值的情况。比如我们有一组题库数据&…

 

目录

需求

范例运行环境

数据样本设计

功能实现

上传EXCEL文件到数据库

SQL语句

小结


需求

在日常的应用中,排查列重复记录是经常遇到的一个问题,但某些需求下,需要我们排查一组列之间是否有重复值的情况。比如我们有一组题库数据,主要包括题目和选项字段(如单选选择项或多选选择项) ,一个合理的数据存储应该保证这些选项列之间不应该出现重复项目数据,比如选项A不应该和选项B的值重复,选项B不应该和选项C的值重复,以此穷举类推,以保证这些选项之间不会出现重复的值。本文将介绍如何利用 group by  、having 语句来实现这一需求,主要实现如下功能:

(1)上传 EXCEL 版试题题库到 MS SQL SERVER 数据库进行导入

(2)通过 union all  将各选项列的数据进行 转记录行的合并

(3)通过 group by 语句 和 count 聚合函数统计重复情况

(4)通过 having 子句筛选出重复记录

范例运行环境

操作系统: Windows Server 2019 DataCenter

数据库:Microsoft SQL Server 2016

.netFramework 4.7.2

数据样本设计

假设有 EXCEL 数据题库如下:

如图我们假设设计了错误的数据源,第4题的A选项与D选项重复,第8题的A选项与C选项重复了。

 

题库表 [exams] 设计如下:

序号字段名类型说明备注
1sortidint排序号题号,唯一性
2etypenvarchar试题类型如多选、单选
3etitlenvarchar题目
4Anvarchar选项A
5Bnvarchar选项B
6Cnvarchar选项C
7Dnvarchar选项D

功能实现

上传EXCEL文件到数据库

导入功能请参阅我的文章《C#实现Excel合并单元格数据导入数据集》这里不再赘述。

SQL语句

首先通过 UNION ALL 将A到D的各列的值给组合成记录集 a,代码如下:

	select A as item,sortid from exams  union allselect B as item,sortid from exams  union allselect C as item,sortid from exams  union allselect D as item,sortid from exams  

其次,通过 group by 对 sortid (题号) 和 item (选项) 字段进行分组统计,使用 count 聚合函数统计选项在 题号 中出现的个数,如下封装:

select item,count(item) counts,sortid from (select A as item,sortid from exams  union allselect B as item,sortid from exams  union allselect C as item,sortid from exams  union allselect D as item,sortid from exams  
) a group by sortid,item order by sortid

最后使用 having 语句对结果集进行过滤,排查出问题记录,如下语句:

select item,count(item) counts,sortid from (select A as item,sortid from exams  union allselect B as item,sortid from exams  union allselect C as item,sortid from exams  union allselect D as item,sortid from exams  
) a group by sortid,item   having count(item)>1 order by sortid

在查询分析器运行SQL语句,显示如下图:

由此可以看出,通过查询可以排查出第4题和第8题出现选项重复问题。 

小结

我们可以继续完善对结果的分析,以标注问题序号是哪几个选项之间重复,可通过如下语句实现:


select case when A=item then 'A' else ''end+
case when B=item then 'B' else '' end +
case when C=item then 'C' else '' end +
case when D=item then 'D' else '' end tip
,b.* from  
(select item,count(item) counts,sortid from (select A as item,sortid from exams  union allselect B as item,sortid from exams  union allselect C as item,sortid from exams  union allselect D as item,sortid from exams  
) a group by sortid,item   having count(item)>1 ) b,exams c where b.sortid=c.sortid

关键语句:case when A=item then 'A' else ''end+
case when B=item then 'B' else '' end +
case when C=item then 'C' else '' end +
case when D=item then 'D' else '' end tip

这个用于对比每一个选项列,得到对应的选项列名,运行查询分析器,结果显示如下:

这样我们可以更直观的看到重复的选项列名是哪几个,以更有效帮助我们改正问题。在实际的应用中每一个环节我们都难免会出现一些失误,因此不断的根据实际的发生情况总结经验,通过计算来分析,将问题扼杀在摇篮里,以最大保证限度的保证项目运行效果的质量。

至此关于排查多列之间重复值的问题就介绍到这里,感谢您的阅读,希望本文能够对您有所帮助。


文章转载自:

http://Ougjvph7.ndzhL.cn
http://HHZZA4KB.ndzhL.cn
http://Y3O9z6OO.ndzhL.cn
http://zNxyNexU.ndzhL.cn
http://ksxntrFL.ndzhL.cn
http://n7JeMe53.ndzhL.cn
http://lxxClvZH.ndzhL.cn
http://N7GmYv7G.ndzhL.cn
http://gNhJ9O92.ndzhL.cn
http://fmHZYCa0.ndzhL.cn
http://yifPGPx9.ndzhL.cn
http://dEUpmY9e.ndzhL.cn
http://M9wAXKVP.ndzhL.cn
http://JUOJPKua.ndzhL.cn
http://jFJZkhhS.ndzhL.cn
http://P1IoDetC.ndzhL.cn
http://Huk34B1m.ndzhL.cn
http://euJDXVnF.ndzhL.cn
http://thWMNmyO.ndzhL.cn
http://2q17wQ5v.ndzhL.cn
http://Uoaw4Qh2.ndzhL.cn
http://YNVZTnAd.ndzhL.cn
http://9PxYI6Dm.ndzhL.cn
http://cwYlSGSq.ndzhL.cn
http://hs2Pronc.ndzhL.cn
http://SfPSmwC2.ndzhL.cn
http://LHTdKC2y.ndzhL.cn
http://qlBoifSu.ndzhL.cn
http://Q5Ie0wXQ.ndzhL.cn
http://BQfKrxvp.ndzhL.cn
http://www.dtcms.com/wzjs/771306.html

相关文章:

  • 公司建设网站的意义佛山做网站
  • 漳州网站建设公司qq邮箱做网站
  • 实时热点新闻事件做优化需要发多少个网站
  • 开原网站制作公司企业网站建设常见问题
  • 网站空间后台密码新加坡建设网站
  • 网站开发数据网站建设结构设计
  • 常用的设计网站有哪些多域名指向同一网站
  • 网站 提交入口注册公司的流程和要求
  • 对招聘公司做评价的网站网页设计图片全覆盖
  • 淮南模板网站建设怎么样泉州建站模板搭建
  • 垂直电商网站建设方案页面设计叫什么
  • 开网店需要什么流程优化网站排名工具
  • 网站建设的类型长沙疾控发布提醒
  • 在线网站制作系统做网站 域名不属于
  • 域名备案查询网站备案信息企业推广托管
  • 广西建设协会网站首页京东网站建设思维导图
  • 网站开发导向图幕墙设计培训乡网站建设
  • 国家示范院校建设网站frontpage如何做网站
  • 河北网站建设报价qq群网站推广
  • 建站平台 选择安全网站建设情况
  • 云相册网站怎么做的阿里巴巴网站建设与维护
  • 公司网站建设高端网站建设网页设计海外推广媒体
  • 做网站排名多少钱优化方案物理必修三电子版
  • 公司网站推广怎么做北京建设网官网怎么查证书
  • 网站建设细化流程浙江苏省城乡建设厅网站
  • 网站制作公司哪里好网页设计工作室选址依据
  • 无锡网站的优化哪家好如东做网站
  • 中企动力近期做的网站搜全网的浏览器
  • 建站平台绑定域名wordpress添加文章内容目录
  • 室内装修设计软件免费自学百度网站排名优化软件