我试图MySQL服务器(5.1.41)在此查询...MySQL的 - 马克斯()返回错误的结果
SELECT max(volume), dateofclose, symbol, volume, close, market FROM daily group by market
我得到了这样的结果:
max(volume) dateofclose symbol volume close market
287031500 2010-07-20 AA.P 500 66.41 AMEX
242233000 2010-07-20 AACC 16200 3.98 NASDAQ
1073538000 2010-07-20 A 4361000 27.52 NYSE
2147483647 2010-07-20 AAAE.OB 400 0.01 OTCBB
437462400 2010-07-20 AAB.TO 31400 0.37 TSX
61106320 2010-07-20 AA.V 0 0.24 TSXV
正如你所看到的,最大音量与音量栏的“真实”值非常不同?!?
volume列被定义为int(11),我在这个表中获得了200万行,但它离MyISAM存储的最大距离很远,所以我不敢相信这是问题!数据从同一日期(dateofclose)显示也很奇怪。如果我强制使用WHERE子句的特定日期,则会出现不同的最大(音量)结果的相同符号。这很奇怪...
需要一些帮助在这里!
UPDATE:
这里是我主编的 “工作” 要求:
SELECT a.* FROM daily a
INNER JOIN (
SELECT market, MAX(volume) AS max_volume
FROM daily
WHERE dateofclose = '20101108'
GROUP BY market
) b ON
a.market = b.market AND
a.volume = b.max_volume
所以这个给我,由市场,成交量最高的股票(于2010年11月8日)。
“真实”价值是什么意思? MAX的市场价值回报最高。 – 2010-11-09 02:39:00
是的,但相应的列似乎不匹配。添加卷列以选择显示此。 – 2010-11-09 03:02:07
如果您选择不在GROUP BY中的列,MySql似乎不会出错。 (SQL Server会引发错误。) – beach 2010-11-09 05:11:43