`
- 浏览:
169925 次
- 性别:
- 来自:
free-town
-
- 很久没有学习的劲头了,今天参加一公司的面试,结果问到了这么一个SQL题,也就是给定一个表,需要查找出里面有重复记录的数据记录项。开题之前先谈谈这公司的面试过程,约的是10点到,结果10:20到的,一看大楼觉得还可以,在保安处登记以后走到会客厅等待接待人员来带到面试的地方,开始还是老样子首先是答题,说一个小时,结果应该不到半个小时题就答好了。然后在填填登记表,之后一起把这些东西交给面试的技术(答题之前我问了一句给我试题那哥们说做好以后给谁,哥们用手指头指了指)。接下来就是技术面试了,开始介绍一下自己的工作和参加过的项目,因为之前的项目多是用的SSI的架构(struts1),问了个大概,然后说缓存方面呢,我说memcache,然后叫我谈谈了它的工作机制以及内存分配模型(内存分配模型方面答得不是很好)技术面试的过程中struts1的实现机制和spring aop ioc问得比较多。技术大概面了有40分钟,哥们一看12多了,就叫我下午两点在去,结果我就直接去吃了顿饭,大概2点的时候又来到这公司,直接联系了那哥们(走之前跟我留了个电话说来之后直接打他电话),之后哥们带我到了人事部,然后也是一很2的哥们,问了一些问题说自我介绍3分钟,结果一分钟不到,哥们说三分钟一分钟不到呀,你叫怎么了解你(简历没带上),我想不就面试吗,人事不就谈个工资问问一些以前工作情况吗?然后后来又问了一些问题,说我感觉不配合他的样子,我说没有呀,说实话这些天人的状态确实感觉有点疲惫的样子,其实在这个环节我已经决定放弃这份工作了,最后谈到薪资方面,我说已经写在登记表上了,他估计看了一下说如果假如这边提供一个好的发展环境愿意降低你的薪资吗,我说这个也是根据自己的能力和这边的消费水平来定的不能少。结果哥们来了一句既然到这了就没有必要谈了,我心里在想你TMD SB是招人还是干什么呀?没看到简历上写的薪资呀,谁叫你们打电话叫我面试呀。说了一堆废话,还是说下这个SQL题:
mysql> create database on_demand
-> ;
Query OK, 1 row affected (0.01 sec)
mysql> use on_demand;
Database changed
mysql> show tables;
Empty set (0.00 sec)
mysql> create table get_repeat(id int not null auto_increment,name varchar(10),p
rimary key(id));
Query OK, 0 rows affected (0.09 sec)
mysql> show tables;
+---------------------+
| Tables_in_on_demand |
+---------------------+
| get_repeat |
+---------------------+
1 row in set (0.02 sec)
mysql> insert into get_repeat (name) values ("Li");
Query OK, 1 row affected (0.06 sec)
mysql> insert into get_repeat (name) values ("Li");
Query OK, 1 row affected (0.05 sec)
mysql> insert into get_repeat (name) values ("zhang");
Query OK, 1 row affected (0.01 sec)
mysql>
mysql> insert into get_repeat (name) values ("zhang");
Query OK, 1 row affected (0.03 sec)
mysql> insert into get_repeat (name) values ("wei");
Query OK, 1 row affected (0.03 sec)
mysql> insert into get_repeat (name) values ("liu");
Query OK, 1 row affected (0.03 sec)
mysql> select * from get_repeat;
+----+-------+
| id | name |
+----+-------+
| 1 | Li |
| 2 | Li |
| 3 | zhang |
| 4 | zhang |
| 5 | wei |
| 6 | liu |
+----+-------+
6 rows in set (0.00 sec)
以下是获取重复记录的SQL(方法应该比较多,就写了一种传统写法):
mysql> select * from get_repeat where name in (select name from get_repeat group
by name having count(name)>=2);
+----+-------+
| id | name |
+----+-------+
| 1 | Li |
| 2 | Li |
| 3 | zhang |
| 4 | zhang |
+----+-------+
4 rows in set (0.00 sec)
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
如何用SQL排除重复结果只取字段最大值的记录?要求得到的结果(即是PID相同的记录只取ID值最大的那一条)。 代码如下:select * from [Sheet1$] awhere ID not exists (select 1 from [Sheet1$] where PID=a.PID and...
sql 查出一张表中重复的所有记录数据 1.表中有id和name 两个字段,查询出name重复的所有数据 select * from xi a where (a.username) in (select username from xi group by username having count(*) > 1) 2、...
#### 方法六:删除具有多字段重复值的记录(保留每组中的一条) **SQL语句**: ```sql DELETE FROM vitae a WHERE (a.peopleId, a.seq) IN (SELECT peopleId, seq FROM vitae GROUP BY peopleId, seq HAVING ...
而对于多字段重复数据,则是基于多个字段的组合值进行判断。 ### SQL清除重复数据的方法 #### 1. 单字段重复数据的清除 对于单字段重复数据的清除,可以使用以下SQL语句: ```sql DELETE FROM table_name WHERE ...
SQL 去重是指从查询结果中去除重复的记录,只保留唯一的记录。这通常是为了提高数据处理效率或确保数据分析的准确性。 #### 2. SQL 去重的方法 SQL 提供了多种方法来实现去重: - **DISTINCT 关键字**:最简单的...
在使用mysql时,有时需要查询出某个字段不重复的记录,虽然mysql提供有distinct这个关键字来过滤掉多余的重复记录只保留一条,但往往只用它来返回不重复记录的条数,而不是用它来返回不重记录的所有值。其原因是...
根据给定文件的信息,本文将详细探讨如何在数据库表中查找和处理字段值重复的记录。主要内容包括使用三种方法:ROWID、GROUP BY 和 DISTINCT,来查找和删除表中的重复记录。 ### 一、ROWID 方法 #### 1.1 查找重复...
该函数检查即将插入的`Caption`值是否已经在表中存在非空的重复值。如果存在,则返回`0`,否则返回`1`。通过这种方式,函数确保了只有当新插入的非空`Caption`值不与现有非空值冲突时,插入操作才能成功。测试表明,...
在数据库中,重复数据指的是具有相同值的一组记录。这可能会导致存储浪费、查询效率降低以及数据不一致性的问题。因此,识别并处理这些重复数据至关重要。 查询重复数据通常涉及到聚合函数和分组。例如,如果我们有...
在SQL Server Management Studio中,可以右键点击临时表,选择“所有任务”->“管理索引”->“新建”,然后设置索引选项以忽略重复值。这一步确保临时表中不会包含任何重复记录。 **步骤三:复制数据** 然后,我们...
在SQL Server中,有时我们需要对某个字段的值进行合并,特别是在数据分析或报表生成时,这种情况很常见。本实例探讨了如何在SQL Server中合并特定字段的值,特别是针对相同ID的记录。我们将通过一个实际的例子来理解...
在SQL中,有时我们需要处理的情况是,从数据库查询返回的结果集中包含多行记录,而这些记录在某些字段上有相同的值。这种情况下,我们希望合并这些重复字段的记录,以减少数据冗余,提高数据展示的清晰度。本文将...
本文将介绍在SQL Server数据库中实现字段值自动增长且连续的两种方法,并详细阐述各自的实现方式、优缺点及适用场景。 首先,SQL Server中实现字段值自动增长的传统方法是通过定义字段的identity属性。Identity属性...
执行该语句后,系统会返回表`aa`中`id`字段的所有不重复值。 #### 3. 进阶用法 - **多列去重**:如果需要查询多个字段并去除重复行,可以使用多个字段与`DISTINCT`结合。例如: ```sql SELECT DISTINCT column1, ...
这同样能防止该字段出现重复值,但索引字段不一定作为记录的唯一标识。 3. **数据验证**:在数据输入阶段,通过前端应用程序进行验证,确保输入的数据满足唯一性要求。 4. **数据清洗**:定期对数据库进行数据清洗...
1. 首先,查询出具有重复值的记录,存储到temp1中。 ```sql select [标志字段 id],count(*) into temp1 from [表名] group by [标志字段 id] having count(*)>1 ``` 2. 然后,找出不重复的记录,也存入temp1。 `...
以下是对标题和描述中涉及的SQL语句和字段进行的详细解释: 1. **数据查询**: - `SELECT`:用于从数据库中检索数据,可以指定特定的列或所有列,如`SELECT * FROM table_name`将获取表中的所有数据。 - `LIKE`:...
这种方式适用于只需要去除某列或某些列的重复值的情况。 ##### 2.2 使用子查询结合`GROUP BY`和`HAVING` 当需要删除整个记录中的重复行时,可以使用子查询结合`GROUP BY`和`HAVING`来实现。以下面的示例为例: ``...
### 动态SQL 并且把返回的值赋给变量 在SQL Server中,动态SQL是一种强大而灵活的工具,允许开发人员根据运行时条件构建并执行SQL查询。本文将详细介绍如何利用`sp_executesql`来执行动态SQL,并重点讨论如何将执行...