- Mar 30 Tue 2010 03:03
-
【Perl】CPAN - 移除重複(相似)的資料 - Text::Record::Deduper
- Mar 30 Tue 2010 01:23
-
【時間管理】蕃茄時間管理法
- Mar 29 Mon 2010 21:42
-
【轉貼】【MySQL】MySQL 重複資料查詢及刪除
1、查閱資料表中多餘的重複記錄,重複記錄是根據單個欄位(peopleId)來判斷
select * from people
where peopleId in (select peopleId from people group by peopleId having count(peopleId) > 1)
2、刪除表中多餘的重複記錄,重複記錄是根據單個欄位(peopleId)來判斷,只留有rowid最小的記錄
delete from people
where peopleId in (select peopleId from people group by peopleId having count(peopleId) > 1)
and rowid not in (select min(rowid) from people group by peopleId having count(peopleId )>1)
3、查閱資料表中多餘的重複記錄(多個欄位)
select * from vitae a
where (a.peopleId,a.seq) in (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1)
4、刪除表中多餘的重複記錄(多個欄位),只留有rowid最小的記錄
delete from vitae a
where (a.peopleId,a.seq) in (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1)
and rowid not in (select min(rowid) from vitae group by peopleId,seq having count(*)>1)
5、查閱資料表中多餘的重複記錄(多個欄位),不包含rowid最小的記錄
select * from vitae a
where (a.peopleId,a.seq) in (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1)
and rowid not in (select min(rowid) from vitae group by peopleId,seq having count(*)>1)
(二)
比方說
在A表中存在一個欄位“name”,
而且不同記錄之間的“name”值有可能會相同,
現在就是需要查詢出在該表中的各記錄之間,“name”值存在重複的項;
Select Name,Count(*) From A Group By Name Having Count(*) > 1
如果還查性別也相同大則如下:
Select Name,sex,Count(*) From A Group By Name,sex Having Count(*) > 1
(三)
方法一
declare @max integer,@id integer
declare cur_rows cursor local for select 主欄位,count(*) from 表名 group by 主欄位 having count(*) >; 1
open cur_rows
fetch cur_rows into @id,@max
while @@fetch_status=0
begin
select @max = @max -1
set rowcount @max
delete from 表名 where 主欄位 = @id
fetch cur_rows into @id,@max
end
close cur_rows
set rowcount 0
方法二
有兩個意義上的重複記錄,一是完全重複的記錄,也即所有欄位均重複的記錄,二是部分關鍵字段重複的記錄,比如Name欄位重複,而其他欄位不一定重複或都重複可以忽略。
1、對於第一種重複,比較容易解決,使用
select distinct * from tableName
就可以得到無重複記錄的結果集。
如果該表需要刪除重複的記錄(重複記錄保留1條),可以按以下方法刪除
select distinct * into #Tmp from tableName
drop table tableName
select * into tableName from #Tmp
drop table #Tmp
發生這種重複的原因是表設計不周產生的,增加唯一索引列即可解決。
2、這類重複問題通常要求保留重複記錄中的第一條記錄,操作方法如下
假設有重複的欄位為Name,Address,要求得到這兩個欄位唯一的結果集
select identity(int,1,1) as autoID, * into #Tmp from tableName
select min(autoID) as autoID into #Tmp2 from #Tmp group by Name,autoID
select * from #Tmp where autoID in(select autoID from #tmp2)
最後一個select即得到了Name,Address不重複的結果集(但多了一個autoID欄位,實際寫時可以寫在select子句中省去此列)
(四)查詢重複
select * from tablename where id in (
select id from tablename
group by id
having count(id) > 1
)
select * from people
where peopleId in (select peopleId from people group by peopleId having count(peopleId) > 1)
2、刪除表中多餘的重複記錄,重複記錄是根據單個欄位(peopleId)來判斷,只留有rowid最小的記錄
delete from people
where peopleId in (select peopleId from people group by peopleId having count(peopleId) > 1)
and rowid not in (select min(rowid) from people group by peopleId having count(peopleId )>1)
3、查閱資料表中多餘的重複記錄(多個欄位)
select * from vitae a
where (a.peopleId,a.seq) in (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1)
4、刪除表中多餘的重複記錄(多個欄位),只留有rowid最小的記錄
delete from vitae a
where (a.peopleId,a.seq) in (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1)
and rowid not in (select min(rowid) from vitae group by peopleId,seq having count(*)>1)
5、查閱資料表中多餘的重複記錄(多個欄位),不包含rowid最小的記錄
select * from vitae a
where (a.peopleId,a.seq) in (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1)
and rowid not in (select min(rowid) from vitae group by peopleId,seq having count(*)>1)
(二)
比方說
在A表中存在一個欄位“name”,
而且不同記錄之間的“name”值有可能會相同,
現在就是需要查詢出在該表中的各記錄之間,“name”值存在重複的項;
Select Name,Count(*) From A Group By Name Having Count(*) > 1
如果還查性別也相同大則如下:
Select Name,sex,Count(*) From A Group By Name,sex Having Count(*) > 1
(三)
方法一
declare @max integer,@id integer
declare cur_rows cursor local for select 主欄位,count(*) from 表名 group by 主欄位 having count(*) >; 1
open cur_rows
fetch cur_rows into @id,@max
while @@fetch_status=0
begin
select @max = @max -1
set rowcount @max
delete from 表名 where 主欄位 = @id
fetch cur_rows into @id,@max
end
close cur_rows
set rowcount 0
方法二
有兩個意義上的重複記錄,一是完全重複的記錄,也即所有欄位均重複的記錄,二是部分關鍵字段重複的記錄,比如Name欄位重複,而其他欄位不一定重複或都重複可以忽略。
1、對於第一種重複,比較容易解決,使用
select distinct * from tableName
就可以得到無重複記錄的結果集。
如果該表需要刪除重複的記錄(重複記錄保留1條),可以按以下方法刪除
select distinct * into #Tmp from tableName
drop table tableName
select * into tableName from #Tmp
drop table #Tmp
發生這種重複的原因是表設計不周產生的,增加唯一索引列即可解決。
2、這類重複問題通常要求保留重複記錄中的第一條記錄,操作方法如下
假設有重複的欄位為Name,Address,要求得到這兩個欄位唯一的結果集
select identity(int,1,1) as autoID, * into #Tmp from tableName
select min(autoID) as autoID into #Tmp2 from #Tmp group by Name,autoID
select * from #Tmp where autoID in(select autoID from #tmp2)
最後一個select即得到了Name,Address不重複的結果集(但多了一個autoID欄位,實際寫時可以寫在select子句中省去此列)
(四)查詢重複
select * from tablename where id in (
select id from tablename
group by id
having count(id) > 1
)
- Mar 25 Thu 2010 05:56
-
【系統】遠端備份
#!/bin/bash
# FTP backup transfer script
# For Use to transfer backup file to FTP Server
#開始定義下面所會使用到的變數
##FTP主機
hostip="192.168.1.252"
##時間參數 年月日
today=`date +%Y%m%d`
##FTP主機 登錄帳號密碼
fusername="fdzone"
fpasswd="123456"
##本地端備份位置
basedir="/home/backup"
##遠端FTP主機的路徑 如果直接複製在 根目錄 無須修改
remodir="."
##定義 備份檔案 檔名
filename="$today"_trade.tgz
filename2="$today"_fin.tgz
filename3="$today"_fax.tgz
filename4="$today"_sub.tgz
##讓服務器重啟
#/etc/rc.d/init.d/smb restart
cd $basedir
#製作當天紀錄
echo "$today" DB1 Backup >> "$basedir"/backup.log
echo "$today" DB1 Backup >> "$basedir"/backup_err.log
##開始將需要每日備份資料夾打包成tgz
#tar -zcvf $filename /home/dbt6/TRADE6 > "$basedir"/backup.log 2> "$basedir"/backup_err.log
#tar -zcvf $filename4 /home/dbt6/SUB > "$basedir"/backup.log 2> "$basedir"/backup_err.log
#tar -zcvf $filename3 /home/dbt6/FAX > "$basedir"/backup.log 2> "$basedir"/backup_err.log
#tar -zcvf $filename2 /home/fin > "$basedir"/backup.log 2> "$basedir"/backup_err.log
####
##
##開始針對需要遠端備份的資料夾 進行上傳
ncftpput -u "$fusername" -p "$fpasswd" "$hostip" "$remodir" "$filename" >> "$basedir"/backup.log 2>> "$basedir"/backup_err.log
ncftpput -u "$fusername" -p "$fpasswd" "$hostip" "$remodir" "$filename2" >> "$basedir"/backup.log 2>> "$basedir"/backup_err.log
ncftpput -u "$fusername" -p "$fpasswd" "$hostip" "$remodir" "$filename3" >>"$basedir"/backup.log 2>> "$basedir"/backup_err.log
ncftpput -u "$fusername" -p "$fpasswd" "$hostip" "$remodir" "$filename4" >> "$basedir"/backup.log 2>> "$basedir"/backup_err.log
##把 每日備份的記錄檔 寄至管理者郵件信箱
mail -s "$today_ Backup List " ken.sd.hsu@gmail.com < /home/backup/backup.log
# FTP backup transfer script
# For Use to transfer backup file to FTP Server
#開始定義下面所會使用到的變數
##FTP主機
hostip="192.168.1.252"
##時間參數 年月日
today=`date +%Y%m%d`
##FTP主機 登錄帳號密碼
fusername="fdzone"
fpasswd="123456"
##本地端備份位置
basedir="/home/backup"
##遠端FTP主機的路徑 如果直接複製在 根目錄 無須修改
remodir="."
##定義 備份檔案 檔名
filename="$today"_trade.tgz
filename2="$today"_fin.tgz
filename3="$today"_fax.tgz
filename4="$today"_sub.tgz
##讓服務器重啟
#/etc/rc.d/init.d/smb restart
cd $basedir
#製作當天紀錄
echo "$today" DB1 Backup >> "$basedir"/backup.log
echo "$today" DB1 Backup >> "$basedir"/backup_err.log
##開始將需要每日備份資料夾打包成tgz
#tar -zcvf $filename /home/dbt6/TRADE6 > "$basedir"/backup.log 2> "$basedir"/backup_err.log
#tar -zcvf $filename4 /home/dbt6/SUB > "$basedir"/backup.log 2> "$basedir"/backup_err.log
#tar -zcvf $filename3 /home/dbt6/FAX > "$basedir"/backup.log 2> "$basedir"/backup_err.log
#tar -zcvf $filename2 /home/fin > "$basedir"/backup.log 2> "$basedir"/backup_err.log
####
##
##開始針對需要遠端備份的資料夾 進行上傳
ncftpput -u "$fusername" -p "$fpasswd" "$hostip" "$remodir" "$filename" >> "$basedir"/backup.log 2>> "$basedir"/backup_err.log
ncftpput -u "$fusername" -p "$fpasswd" "$hostip" "$remodir" "$filename2" >> "$basedir"/backup.log 2>> "$basedir"/backup_err.log
ncftpput -u "$fusername" -p "$fpasswd" "$hostip" "$remodir" "$filename3" >>"$basedir"/backup.log 2>> "$basedir"/backup_err.log
ncftpput -u "$fusername" -p "$fpasswd" "$hostip" "$remodir" "$filename4" >> "$basedir"/backup.log 2>> "$basedir"/backup_err.log
##把 每日備份的記錄檔 寄至管理者郵件信箱
mail -s "$today_ Backup List " ken.sd.hsu@gmail.com < /home/backup/backup.log
- Mar 25 Thu 2010 05:16
-
【BIO】Ensembl API

Ensembl Core API Tutorial
Perl modules documentation for Ensembl
I wanna to retrieve all the gene sequences through Ensembl API.
- Mar 12 Fri 2010 06:53
-
【BIO】Retrieving the PubMed data

http://eutils.ncbi.nlm.nih.gov/entrez/query/static/esearch_help.html
It's very useful for guys who want to download the papers abstract from PubMed.
It's the source code that I modified from other people.
- Jan 28 Thu 2010 07:15
-
【投資】嚴格設定停利停損
- Jan 21 Thu 2010 20:31
-
【系統】Yum 更新 CentOS 中的PHP 版本
我的工作機系統是CentOS 5.4,但是他的PHP版本還是很老舊
php -v
PHP 5.1.6 (cli) (built: Jan 13 2010 17:09:42)
Copyright (c) 1997-2006 The PHP Group
Zend Engine v2.1.0, Copyright (c) 1998-2006 Zend Technologies
php -v
PHP 5.1.6 (cli) (built: Jan 13 2010 17:09:42)
Copyright (c) 1997-2006 The PHP Group
Zend Engine v2.1.0, Copyright (c) 1998-2006 Zend Technologies
- Jan 14 Thu 2010 08:25
-
【BIO】KEGG API
API - Application Programming Interface
[維基百科的解釋]
應用程式介面(Application Programming Interface,簡稱API),又稱為應用編程介面,就是軟體系統不同組成部分銜接的約定。由於近年來軟體的規模日益龐大,常常會需要把複雜的系統劃分成小的組成部分,編程介面的設計十分重要。程式設計的實踐中,編程介面的設計首先要使系統的職責得到合理劃分。良好的介面設計可以降低系統各部分的相互依賴,提高組成單元的內聚性,降低組成單元間的耦合程度,從而提高系統的維護性和擴充套件性。
[維基百科的解釋]
應用程式介面(Application Programming Interface,簡稱API),又稱為應用編程介面,就是軟體系統不同組成部分銜接的約定。由於近年來軟體的規模日益龐大,常常會需要把複雜的系統劃分成小的組成部分,編程介面的設計十分重要。程式設計的實踐中,編程介面的設計首先要使系統的職責得到合理劃分。良好的介面設計可以降低系統各部分的相互依賴,提高組成單元的內聚性,降低組成單元間的耦合程度,從而提高系統的維護性和擴充套件性。
- Jan 14 Thu 2010 08:17
-
【PHP】CakePHP - Introduction
- Jan 14 Thu 2010 07:47
-
【新玩意】預計之後會取代TP的技術
- Jan 06 Wed 2010 03:30
-
【網頁】jQuery List




