`
aaron7524
  • 浏览: 64175 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

一道不错的数据库面试题

    博客分类:
  • db
阅读更多
因为见有人发了数据库的面试题,所以想起我去年面试时候遇到的一个面试题,因为当时没有答出来,所以比较深刻。
题目是这样的:有一个数据库表peope,表有字段name,age,address三个属性(注:没有主键)。现在如果表中有重复的数据,请删去重复只留下其中的一条。重复的定义就是两条记录的name,age,address值都一样。

这道题的关键是怎么把重复的数据过滤掉,后来我考虑的做法是这样的:
select * from people group by name,age,address having COUNT(DISTINCT name)=1


这样就可以把重复的数据过滤掉,然后把这些数据插入到一个临时表中,删去原表中的所有数据,再把临时表中的数据插回来就可以了。

1. CREATE TEMPORARY TABLE tmp_table select * from people group by name,age,address having COUNT(DISTINCT name)=1
2. delete from people
3. insert into people select * from tmp_table


不知道大家还有什么好的方法说出来分享一下!

分享到:
评论
3 楼 redhat 2009-12-06  
2. delete from people  可变为:truncate table people.

还有一种简单的方式(效率不一定比上面的好,但也不一定差,要看具体数据冗余的程度),对于oracle,使用rowid:
delete from people where rowid not in (select max(rowid) from people t group by name,age,address);
注意:max(rowid)可以换成min(rowid)。

其实也可写为如下:
create table temp_people as (select distinct * from people);
truncate table people;--truncate 效率比delete高
insert into people select * from temp_people;
2 楼 tufly 2009-07-09  
没人气,不回复。
1 楼 aaron7524 2009-07-08  
刚刚看到了这条SQL select DISTINCT * from people ,哈哈,应该是这么做的,我以前想法复杂了~~。以前尝试过select DISTINCT (*) from people语法错误,以为不可行。汗~~

相关推荐

    一道微软数据库面试题

    根据题目提供的信息,这是一道涉及SQL查询技巧的微软数据库面试题。虽然题目中的SQL代码与题目描述不完全对应,但我们可以基于题目描述中的信息来分析这个问题并给出解答。 ### 题目背景 题目描述指出,有一个表,...

    数据库面试题数据库面试题数据库面试题

    根据提供的信息,我们可以总结出以下相关的数据库面试题知识点: ### 数据库面试题解析 #### 题目一:选择题 1. **题干**:确定下列哪个选项正确描述了数据库系统的逻辑结构? - A. 数据库的有效管理依赖于其逻辑...

    一道数据库面试题

    在数据库设计中,外键约束是确保数据完整性和一致性的重要机制。题目中提到的三个表——JBPM_ID_GROUP、JBPM_ID_MEMBERSHIP和JBPM_ID_USER,分别代表用户组、用户成员关系和用户,它们之间的关系是通过外键关联的。 ...

    企业公司软件测试面试笔试题集合 软件测试面试题

    企业公司软件测试面试笔试...一道数据库的笔试题目.doc 一个外包测试公司的笔试题!.doc 一家通讯公司的面试题目.doc 英文自我介绍大全.doc 英语面试.doc 英语面试题.doc 有意思的逻辑题.doc 中软的面试题(转贴).doc

    一道真正的数据库sql面试题

    通过上述整理的知识点,我们可以清晰地了解到这道面试题覆盖了SQL语言中的多个核心概念和技术点,包括表结构的设计与创建、数据迁移、多表联查、数据更新、存储过程的编写以及复杂的查询操作等。这对于评估应聘者在...

    一道面试题引出的系列数据库性能,数据安全问题及解决方案.docx

    综上所述,通过遵循开发规范、优化数据结构和模型、使用合适的性能优化策略以及借助自动化工具,可以有效地解决面试题中提到的数据库性能和数据安全问题。同时,开发团队和DBA需要持续关注和改进这些方面,以确保...

    常见Oracle数据库面试题目

    ### 常见Oracle数据库面试题目解析 #### 1. 列出至少有一个员工的所有部门 此题旨在考察考生如何筛选出至少有一名员工所在的部门。解决方案是通过使用`GROUP BY`结合`HAVING`子句来实现。具体步骤如下: - 使用`...

    一道SQL Server面试题

    在SQL Server中,面对这道面试题,我们需要编写T-SQL查询来满足以下需求:查询每个部门最后的人员变动时间,以及当前的人员数量、离职总人数和入职总人数。根据提供的表结构,我们可以推断出`DeptHistory`表包含了...

    笔试面试题 一道面试题关于信息系统的问答和注意事项

    笔试面试题 一道面试题关于信息系统的问答和注意事项 【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的...

    整理C#面试题10套

    "C#面试题10套" 本资源摘要信息涵盖了C#面试题10套,涵盖了C#、.NET、面试题...本资源摘要信息涵盖了C#、.NET、面试题等知识点,涉及到逻辑思维、规则应用、加密解密算法、软件架构、设计模式、数据库操作等技术领域。

    sql经典面试题 大家一起学习

    这里我们来看看几道经典的SQL面试题及其解题方法。 1. 第一题的目标是统计每天胜利('胜')和失败('负')的数量。我们可以使用`GROUP BY`语句来按照日期(rq)进行分组,然后通过`CASE`表达式计算胜和负的计数。...

    一道腾讯面试题

    这道2011年腾讯校招的面试题虽然没有明确的问题描述,但从标签中我们可以推测,它可能涉及C++、.NET、Java这三种编程语言中的某一方面,或者是关于算法设计与分析。面试题通常旨在考察候选人的思维能力、编程基础...

    java的一些面试题

    Java面试题涵盖了许多核心知识点,包括基础技术、项目经验、逻辑推理和SQL查询。下面将对这些方面进行详细的解析。 1. **基础技术题** - **UML图**:UML(统一建模语言)有多种图表,包括类图、对象图、用例图、...

    程序员面试题精选100题

    本资源是程序员面试题精选100题,涵盖了算法、数据结构、操作系统、计算机网络、数据库等多个领域。今天,我们将深入分析其中的一道题目,即将二元查找树转换成排序的双向链表。 知识点一:二元查找树(Binary ...

    sql经典面试题

    根据提供的文件内容,我们可以整理出一系列与SQL相关的面试题及解答思路。这些题目涵盖了SQL的基础查询、数据处理、以及更高级的功能应用等多方面内容,非常适合准备数据库工程师面试的求职者进行练习。下面是针对每...

    数据库面试笔试题集

    根据给定文件的信息,我们可以总结出一系列关于数据库面试笔试题的知识点,并且深入解析每一道题目涉及的关键概念。 ### 数据库面试笔试题知识点解析 #### 1. 算法的基本概念及其特性 - **算法的执行效率**:通常...

    Golang 面试题汇编

    记一道字节跳动的算法面试题 多协程查询切片问题 对已经关闭的的chan进行读写,会怎么样?为什么? 简单聊聊内存逃逸? 字符串转成byte数组,会发生内存拷贝吗? http包的内存泄漏 sync.Map 的用法 Golang 理论 Go...

    暴雪面试题整理

    这是一道反向问题,通常用于考察应聘者的自知之明和诚实。答案可能包括缺乏特定技能、工作经验不足或个人生活可能影响工作表现的情况。 【加班的看法】 对于加班的看法因人而异,但通常健康的公司文化应注重工作...

Global site tag (gtag.js) - Google Analytics