昨天下午碰到乙個需求,乙個大約30萬行的表,其中有很多重複行,在這些行中某些字段值是不重複的。
比如有id,name,contract_id,sales,product等,除了product欄位,其餘欄位均是一樣的,需要去重並合併product欄位。
下午頭腦發昏,直接寫了個o(nm)的vba**,從16:00開始跑,放到另一台空機器上開始跑,下班的時候看了一下跑了不到1/20,感覺時間浪費在io上了,當然演算法也有很大優化空間,比如排序後再合併。
回來想了想何不直接匯入資料庫操作,最簡單的用access+vba就行啊。
public function combstr(tablename as string, fieldname as string, groupfield as string, groupvalue as string) as string' msgbox "in module"
dim resultstr as string
dim rs as recordset
set rs = currentdb.openrecordset("select " & fieldname & " from " & tablename & " where " & groupfield & "='" & groupvalue & "'")
if rs.recordcount > 0 then
do while not rs.eof
if instr(resultstr, rs.fields(0).value) = 0 then resultstr = resultstr & "," & rs.fields(0).value
rs.movenext
loop
end if
if resultstr <> "" then resultstr = mid(resultstr, 2)
combstr = resultstr
end function
select idcombstr("contract","product","id",id) as productsumfrom contract
group by id;
極速搞定之
mysql 查詢行轉列 SQL語句實現行轉列查詢
表sales 查詢結果如下 1 建表 create table dbo sales id int identity 1,1 not null,year int null,jidu int null,jine int null,primary key clustered id asc with pad...
SQL 行轉列查詢的簡易實現
開發中難免遇到一些非常靈活的設計,比如對sql的行轉列進行業務資料展現的.最近在做系統設計的時候設計了乙個公共物件的擴充套件表,然後需要實現不同業務物件的組合查詢,因此借鑑了以前經典的學生科目成績行轉列的案例 在此自己做了修正,以供分享.先曬圖說效果 1 表的原始資料 2 轉換後的資料 ok 下面具...
sql語句中的 行轉列 查詢
有時候多行資料需要一行顯示,這就需要行轉列的sql啦.首先 要知道 行轉列當然是要以某個字段進行分組的,然後再根據表中 乙個欄位的值做轉列後的欄位名,這個值所對應的另乙個字段作為 值 示例 表名 xx班 班級 學生身高一班甲 161一班 乙162一班丙 163一班 丁164一班戊 165假如 要將上...