線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:916
推到 Plurk!
推到 Facebook!

分組平均取樣

尚未結案
will
中階會員


發表:176
回覆:135
積分:62
註冊:2002-04-14

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-04-18 12:25:24 IP:218.162.xxx.xxx 未訂閱
我有一個資料表,記載每個縣市學生的身高,資料表的結構如下 ID Height CountyID (身分證字號) (身高) (縣市代號) L121355336 133 1 L121355436 125 3 L121355356 122 5 L121355436 133 2 L121355337 155 2 L121355338 126 3 L121355330 177 4 L121355355 128 5 L121355333 123 6 由於每個縣市傳來的資料量非常的大,我只想取每個縣市的百分之三十來分析 我的資料庫是MSSQL,如果用select top 30 percent ….,只能取全部的百分之30,每個縣市取樣很不平均,請問要如何才能取得每個縣市的百分之三十的學生的資料呢?
timhuang
尊榮會員


發表:78
回覆:1815
積分:1608
註冊:2002-07-15

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-04-18 12:50:04 IP:61.62.xxx.xxx 未訂閱
Hi, 請問取 30% 的順序為何? 若是要節省時間的話, 利用前 30% 的做法也還是會將所有資料排序一次, 效能未必能增進, 並且計算出來的數值也更不客觀, 當然, 還是有方法處理, 只是速度不見得比較快!
pprayer
高階會員


發表:35
回覆:185
積分:174
註冊:2002-03-13

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-04-19 12:05:38 IP:61.218.xxx.xxx 未訂閱
身分證號的英文字母代表戶籍地的縣市的樣子,若這樣似乎可以分開看 先看英文字母,另外看號碼是否可以整除3。 MS SQL 有Substr 跟Number 應該可以這樣做,只是不見得會比較快...
James
高階會員


發表:10
回覆:290
積分:220
註冊:2002-07-25

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-04-19 18:27:01 IP:61.218.xxx.xxx 未訂閱
請問您所謂的資料量大是多大 ? 因為這樣的資料就算有 10~20 萬的做計算 , 以目前蠻低等的 P3 750 512MB ,感覺起來計算不會太慢 !! 但如果您會一直 重複大量查訊這樣的資料 ,也許可以考慮 1. 把每個 Table 按照縣市分開存放 , 或者是配合縣市代號和身高來建立 Index ,讓資料儘量在記憶體中計算 2. 如果是很查需要查詢這樣的資料 , 是不是放一個個 Table 來做統計檔 , 放各縣市的身高加總和人數
Miles
尊榮會員


發表:27
回覆:662
積分:622
註冊:2002-07-12

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-04-19 20:24:43 IP:218.160.xxx.xxx 未訂閱
Hi will 您好: 試試這個複合查詢

Select * from Country a
where a.ID in (Select Top 30 Percent b.ID from Country b
                   where b.CountyID = a.CountyID)  
由於我沒有環境, 只能請你先試一下 我不是高手, 高手是正在銀幕前微笑的人.
------


我不是高手, 高手是正在銀幕前微笑的人.
系統時間:2024-06-01 9:26:50
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!