如何删除数据库中的冗余数据?
如何删除数据库中的冗余数据?
它将冗余数据选择到一个游标中,并根据(LastName,FirstName)来分组(在我们这个方案中),然后打开游标然后循环地取出每一行,然后用与先前的取出的键值进行比较,如果这是第一次取出这个值,或者这个值不是冗余键,那么跳过这个记录然后取下一个,不然的话,这就是这个组中的冗余记录,所以删掉它. 让我们运行一下这个存储过程 BEGIN DeleteDuplicates; END; / SELECT LastName, FirstName, COUNT(*) FROM Customers GROUP BY LastName, FirstName HAVING COUNT(*) > 1; 最后一个查询语句没有返回值,所以冗余数据没有了从表中取冗余数据的过程完全是由定义在csr_Duplicates 这个游标中的SQL语句来实现的,PL/SQl只是用来实现删除冗余数,那么能不能完全用SQL语句来实现呢? 二.SQL解决方案,使用RANK()删除冗余数据Oracle8i分析函数RANK()来枚举每一个组中的元素,在我们的方案中, 我们应用这个方案,我们使用这个函数动态的把冗余数据连续的排列起来加上编号,组由Partintion by 这个语句来分开,然后用Order by 进行分组 SELECT ID, LastName, FirstName, RANK() OVER (PARTITION BY LastName, FirstName ORDER BY ID) SeqNumber FROM Customers ORDER BY LastName, FirstName; SQL Listing 7。
Output of single SQL statement that uses RANK() 显示的是根据记录的条数的个数来显示尤其对于冗余数据 ID LASTNAME FIRSTNAME SEQNUMBER ----- --------------- ---------- ---------- 1018 Blake Becky 1 1013 Blue Don 1 1000 Bradley Tom 1 1002 Chang Jim 1 1008 Griffith David 1 1020 Hill Larry 1 1004 King Chuck 1 1005 Krieger Jeff 1 1012 Krieger Jeff 2 1017 Krieger Jeff 3 1003 Loney Julie 1 1007 Lord Don 1 1015 Mason Paul 1 1006 Monroe John 1 1009 Simon Michael 1 1010 Simon Michael 2 1001 Stone Tony 1 1011 Stone Tony 2。
答:简单说就是多个地方重复存储相同数据。一般是用在数据库上。 比如一个表A结构:学号,姓名,科目,成绩 另一表B结构:学号,姓名,班级 这样的两张表格就有“姓名”字...详情>>
问:同事ip:10.101.107.28 我的IP:10.101.104.23我们在...
答:你们公司是WINDOWS域环境吗,如果是的话,你在网上邻居里应该能看到对方的主机。让她把文件夹共享出来就可以。 如果不是WINDOWS域,那得看你们是不是在一个...详情>>
问:数据结构顺序表的建立,可定义顺序表 #define maxnum elemtyp...
答:打开VC ,然后点击新建,出来界面之后选择Win32 Console Application并输入工程的名称和选择项目的位置,然后出现“一个空工程”,在点击“...详情>>