VFP 愛用者社區 首頁 VFP 愛用者社區
本討論區為 Visual Foxpro 愛用者經驗交流的地方, 請多多利用"搜尋"的功能, 先查看看有無前例可循, 如果還有不懂的再發問. 部份主題有附加檔案, 須先註冊成為社區居民才可以下載.
 
 常見問題常見問題   搜尋搜尋   會員列表會員列表   會員群組會員群組   會員註冊會員註冊 
 個人資料個人資料   登入檢查您的私人訊息登入檢查您的私人訊息   登入登入

請教如何抓資料中大於平均值的紀錄

 
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區
上一篇主題 :: 下一篇主題  
發表人 內容
sthuang66



註冊時間: 2014-04-27
文章: 171


第 1 樓

發表發表於: 星期二 十一月 11, 2014 5:01 pm    文章主題: 請教如何抓資料中大於平均值的紀錄 引言回覆

資料如下Sad是舉例10筆!!原始資料有千筆) 表格名A1,想取出所有大於NO資料平均值的紀錄
ID NO
A 88
B 99
C 66
D 67
E 1
F 9
G 20
H 30
I 45
J 79
我知道用全部用excel是很快!
我有試著用vfp加一小部分EXCEL來算!不知有高手可以有更棒的算法!???
SELECT COUNT(ID) as id_no,SUM(NO) AS T_NO FROM A1 INTO CURSOR A2
COPY TO AAA TYPE XLS
CLOSE DATABASE ALL
A=VAL(INPUTBOX('請輸入平均值'))
SELECT ID,NO FROM A1 WHERE NO > A INTO cursor Aaa
COPY TO ans
CLOSE DATABASE ALL
quit
我是先把丟到EXCEL直接開那個檔算出平均值!再用INPUTBOX丟回vfp
謝謝各位高手指教
回頂端
檢視會員個人資料 發送私人訊息
sthuang66



註冊時間: 2014-04-27
文章: 171


第 2 樓

發表發表於: 星期二 十一月 11, 2014 5:16 pm    文章主題: 引言回覆

SELECT COUNT(ID) as id_no,SUM(NO) AS T_NO FROM A1 INTO CURSOR A2 這行修正一下變下面比較精簡!
SELECT AVG(NO) FROM A1 INTO CURSOR A2
只要把EXCEL的內容值填入即可
回頂端
檢視會員個人資料 發送私人訊息
perry



註冊時間: 2014-07-20
文章: 203


第 3 樓

發表發表於: 星期二 十一月 11, 2014 6:01 pm    文章主題: 引言回覆

代碼:

CALCULATE eExpressionList
[Scope] [FOR lExpression1] [WHILE lExpression2]
[TO VarList | TO ARRAY ArrayName]
[NOOPTIMIZE]

CALCULATE Command Example

CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'data\testdata')
USE orders  && Open Orders table

SET TALK ON
CLEAR
CALCULATE AVG(order_amt), MIN(order_amt), MAX(order_amt)
CALCULATE STD(order_amt), VAR(order_amt) TO gnStd, gnVar

也可自己寫個笨方法
sele aaa
go top
sum 1,no to rd_cnt,no_sum
rd_avg=round(no_sum/rd_cnt,1)
sele * from aaa wher no>rd_avg
回頂端
檢視會員個人資料 發送私人訊息
lygcw9603



註冊時間: 2011-12-25
文章: 127


第 4 樓

發表發表於: 星期三 十一月 12, 2014 12:32 am    文章主題: 引言回覆

代碼:
Create Cursor T1 (Id C(1),No N(3))
=Rand(-1)
For lnI=1 To 10
    Insert Into T1 Values (Chr(64+lnI),Rand()*100)
EndFor
Select * From T1 Where No>(Select Int(Avg(No)) From T1)
回頂端
檢視會員個人資料 發送私人訊息
sthuang66



註冊時間: 2014-04-27
文章: 171


第 5 樓

發表發表於: 星期三 十一月 12, 2014 8:12 pm    文章主題: 引言回覆

to lygcw9603
參考你的方法用
SELECT ID,NO FROM A1 WHERE NO> (Select Int(Avg(No)) From a1) into table a
可以了! 謝謝
回頂端
檢視會員個人資料 發送私人訊息
從之前的文章開始顯示:   
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區 所有的時間均為 台北時間 (GMT + 8 小時)
1頁(共1頁)

 
前往:  
無法 在這個版面發表文章
無法 在這個版面回覆文章
無法 在這個版面編輯文章
無法 在這個版面刪除文章
無法 在這個版面進行投票
無法 在這個版面附加檔案
無法 在這個版面下載檔案


Powered by phpBB © 2001, 2005 phpBB Group
正體中文語系由 phpbb-tw 維護製作