我正在使用MySQL和Sequel Pro Mac OS X.我有一个表格,显示在下面的屏幕截图中。
screen shot of table in question
如何按时间顺序排列“PIT_ID”列的值,作为同一个表的“Date_ID”列的值的函数?换句话说,我希望将“PIT_ID”列中列出的每个投手组合在一起,并按照每个开始时间的时间顺序排序。如表格现在所示,每个投手的开始被组合在一起并且它们按照他的开始日期排序,但仅作为他所对抗的队伍的函数(即,由“GAME_ID”列的前三个字符指定)。因此,使用“PIT_ID”列中的第一个显示的名称作为示例“aased001”,有91行具有该启动器“aased001”。这91行中的每一行都反映了他所玩的91种不同的游戏,并包含反映游戏统计数据的独特数据。这91行数据仅按时间顺序排列,与他所参加的每支球队相比。在这种情况下,他们按照巴尔的摩的时间顺序排列,但是日期年代表重新开始,对于他对阵的下一支球队波士顿,而不是显示他的首发时间顺序的表格而不管球队(或者不作为一个功能)他所反对的球队)在表格中,我希望一个特定投手的开始由投手组合在一起,并按照他所参加的球队独立的纯时间顺序排序。
我希望这是有道理的。请要求澄清。
提前谢谢。
更新:
PIT_ID和GAME_ID之间有一个PRIMARY KEY组合,虽然我不确定是否有必要 - 我不确定实际上实际上允许什么。这是我尝试的代码,它将按时间顺序排序日期顺序对PIT_ID进行排序,但不会对表格进行更改。
ALTER TABLE starting_pitcher_game_log;
SELECT PIT_ID, DATE_ID
FROM starting_pitcher_game_log
ORDER BY PIT_ID,DATE_ID
以下是我运行上述查询后引用的三列中的一些示例数据(但实际表没有更改):
PIT_ID DATE_ID GAME_ID
aased001 1977-07-26 BOS197707260
aased001 1977-07-31 CAL197707310
aased001 1977-08-06 OAK197708060
aased001 1977-08-11 BOS197708110
aased001 1977-08-16 BOS197708160
aased001 1977-08-21 KCA197708210
aased001 1977-08-26 BOS197708260
aased001 1977-08-31 BOS197708310
aased001 1977-09-05 TOR197709051
aased001 1977-09-10 BOS197709100
aased001 1977-09-16 BAL197709160
aased001 1977-09-22 DET197709220
aased001 1977-09-27 BOS197709271
aased001 1978-04-11 CAL197804110