我正在处理股票价格数据并进行此查询以获取每月一个价格,例如 Google(来自每个工作日价格的表格):
SELECT * FROM pricedata WHERE symbol='GOOG' GROUP BY symbol,month(date),year(date)
2012-07-02
2012-06-01
2012-05-01
如果我删除 WHERE 子句,它将返回该月的最后一个日期而不是第一个日期(当然还有更多行,因为表中的所有符号都会显示出来),如
SELECT * FROM pricedata GROUP BY symbol,month(date),year(date)
2012-07-31
2012-06-29
2012-05-31
我知道“服务器可以从每个组中自由选择任何值”,所以我可能很幸运第一个查询按我的意愿工作,但我想知道为什么会发生这种变化。
是否有一个快速的解决方案来持续获得每个月的第一个值?我还没有发现任何类似的问题,但它们可能在那里......第二个查询并不重要,但我试图为每月记录建立一个缩小大小的表并遇到了这个问题。