如何根据同一个表中

时间:2015-11-22 04:54:26

标签: mysql group-by columnsorting

我正在使用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

0 个答案:

没有答案