作者gargamel (Nerding)
看板Database
標題Re: [SQL ] 判斷欄位後,留下需要的欄位
時間Fri Mar 28 14:43:55 2008
推文要等好久...
我先假設你每列記錄有個欄位叫seq (表示投球數序次)
pk是pitcher+seq
SELECT * FROM table1 a
WHERE EXISTS (
SELECT * FROM table1 b
WHERE b.seq = 1
AND (b.1st IS NOT NULL
OR b.2nd IS NOT NULL
OR b.3rd IS NOT NULL)
AND a.pitcher = b.pitcher)
以上意思是
哪些投手在投第一球時, 壘上有人
如果跟你想像差異太大, 不仿把你的table schema設計完整貼上來吧...
*這該不會是職棒賭博的分析程式吧...XD
pitcher seq pitH 1st 2nd 3rd
millk004 1 R
millk004 2 R napom001
millk004 3 R napom001
millk004 4 R iztum001
millk004 5 R iztum001
millk004 6 R cabro001 iztum001
olivd001 1 L
olivd001 2 L blalh001
speij001 1 R wilkb002 blalh001
speij001 2 R wilkb002 blalh001
mahar001 1 L
mahar001 2 L
mahar001 3 L
woodm002 1 R kotcc001
speij001 1 R
speij001 2 R
speij001 3 R
woodm002 1 R
woodm002 2 R
woodm002 3 R
woodm002 4 R mattg002
shies002 1 R
shies002 2 R
shies002 3 R
woodm002 1 R
woodm002 2 R
woodm002 3 R andeg001
woodm002 4 R hills002
woodm002 5 R
woodm002 6 R kotcc001
rodrf003 1 R
rodrf003 2 R
rodrf003 3 R
: 推 gargamel:你講的"保留"是指?當前的狀況?還是不要刪掉? 03/27 15:32
: → lery:保留當時的狀況,為了統計更換投手後,壘上的人數 03/27 22:42
: → lery:套入公式後可以計算出該投手的表現 03/27 22:50
: → lery:就是投手登場時,若壘上有人,該投手的列不要刪掉 03/27 22:56
: 推 gargamel:你意思就是新投手上來時,壘上有人的話,他所有記錄都要留? 03/28 00:18
:
: 是的,直到他被換下去,或是該局結束換對手的投手上場
: 這是要統計後援投手對壘上有人的狀況,處理危機的能力
: 因為這個紀錄是 play-by-play
: 所以會出現,換局後投手還在場上的狀況,因此只需要判斷壘上是否有人
: 因為一開局就上場的投手,壘上一定沒有人
: 這邊只有列出一場比賽,但是資料庫本身是該隊一整年的比賽
: ※ 編輯: lery 來自: 220.132.59.38 (03/28 11:33)
: 推 gargamel:每列紀錄應都有個值去記錄它的唯一性,例如第幾球...之類 03/28 14:32
※ 編輯: gargamel 來自: 60.250.190.113 (03/28 14:44)
推 lery:的時候發生這個 play,檔案是Excel的不過可用Access打開 03/28 20:17
推 lery:其實這是我的論文data, 研究對象是中繼後援投手,謝謝g大 03/28 20:29
推 lery:這邊的檔案只有天使隊07年的資料,因為要做80~07年,所以需要 03/28 20:40
推 lery:SQL的幫助 另一個管道就是從ESPN抓 但是投手真的太多 03/28 20:41
→ gargamel:我建議你先找個ETL工具, 把它轉成正規劃後的table 03/28 22:26
0.首先先決定batteam是哪一隊, 先設定是0
1.如果是leadoff='T'且outsonplay=0, 表示打者是該局第一個打者, 且沒有人出局
這些投手完全排除
剩下的就是中繼或後援投手, 且是當局第二名投手
這些記錄再去分析看看有啥數據可分辦了..
很想睡, 有空再看...0rz
推 lery:嗯 其實我都是用MS Access開,只是上傳方便用Excel檔 03/28 22:55
※ 編輯: gargamel 來自: 220.135.237.13 (03/28 23:09)
推 lery:用 delete 的話,我不知道如何刪掉相同的投手,我太弱了sorry 03/29 17:43
推 lery:我只能刪掉leadoff='T'且outsonplay=0的列 03/29 17:44