我試圖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