全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:3388
推到 Plurk!
推到 Facebook!

請問統計方面的SQL語法

尚未結案
wscski
一般會員


發表:19
回覆:38
積分:11
註冊:2002-04-15

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-09-29 13:49:05 IP:163.28.xxx.xxx 未訂閱
請教大大 我用MS SQL,有查到計算平均值可用AVG 另外要計算中位數、眾數,不知語法要怎麼寫? 我是想直接讓資料庫去做計算 要不然就只能把資料傳回LOCAL再做計算了 謝謝大家囉!
Mickey
版主


發表:77
回覆:1882
積分:1390
註冊:2002-12-11

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-09-29 15:00:57 IP:218.163.xxx.xxx 未訂閱
一般來說, SQL 所能提供的數值運算函數, 都是比較基本的, 如 Max/Min/Avg..., 如果你不希望將大量的資料, open 到前端來運算, 運用預存程序(Stored Procedure)是不錯的選擇.
pprayer
高階會員


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

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-09-29 17:15:40 IP:211.75.xxx.xxx 未訂閱
引言: 請教大大 我用MS SQL,有查到計算平均值可用AVG 另外要計算中位數、眾數,不知語法要怎麼寫? 我是想直接讓資料庫去做計算 要不然就只能把資料傳回LOCAL再做計算了 謝謝大家囉!
眾數是指出現次數最多的嗎? 我覺得SQL是可以辦得到 select Top 1 LozNo,Count(LozNo) as cnt from Location group by LozNo order by cnt desc 上面這段(SQL Server)可以查出出現次數最多的LozNo 另外中位數...有可能有兩個或者單獨一個, 我想到的做法是,先select Count(*)as Cnt from store 取得筆數 如果是奇數就是取第 (Cnt mod 2 1)筆資料 偶數則是第(Cnt mod 2 1)筆和第(Cnt mod 2)筆的平均值 假設取的是奇數筆,這個資料列有11筆,所以就是取第6筆 select top 1 storeno from store where storeno in (select top 6 storeno from store order by storeno ) order by storeno desc 如果取的是偶數筆,例如資料列有10筆,要取第5.6兩筆 select top 2 storeno from store where storeno in (select top 6 storeno from store order by storeno ) order by storeno desc 這樣可以就可以取到storeno數列的中位數 一點小建議 發表人 - pprayer 於 2003/09/29 17:19:46 發表人 - pprayer 於 2003/09/29 17:31:24
wscski
一般會員


發表:19
回覆:38
積分:11
註冊:2002-04-15

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-10-01 21:29:31 IP:61.62.xxx.xxx 未訂閱
謝謝Mickey、pprayer兩位大大勒! 我先來試試! 謝謝!
系統時間:2024-05-18 22:38:36
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!