嗨,这一切可能都是愚蠢的问题,但无法弄明白。我有一张包含这些数据的表格:
+--------------+--------+--------+---------------+-------------+
| company_code | ltp | ycp | datetime | total_value |
+--------------+--------+--------+---------------+-------------+
| ABC | 291.00 | 342.00 | 9/25/13 10:30 | 12540 |
| ABC | 344.00 | 342.00 | 9/25/13 10:31 | 15400 |
+--------------+--------+--------+---------------+-------------+
如您所见,数据每分钟都在更新,我需要找到的价格变化是(ltp-ycp)/ ycp。所以我写这个查询:
SELECT
company_code, max(ltp), ycp, sum((max(ltp) - ycp)/ycp) as change
FROM eod_stock
GRPUP BY company_code
ORDER BY change DESC;
但这会产生错误
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'change FROM eod_stock GRPUP BY company_code ORDER BY change DESC'
没有找到解决方案,因为我需要最后的交易价格 - 昨天的价格(ycp),但不知道如何使用和最大值。
另一个问题我需要找到最后几天总交易量在表中显示9/25/2013但我需要最后插入的总交易量为9/24/2013
我用过 从eod_stock限制10中选择max(total_trade),datetime - interval;也得到错误。任何人都可以想到如何摆脱这个错误?答案 0 :(得分:0)
您可以尝试以下
SELECT
`c_code`, `m_lcp`, `ycp`,sum(`change`)
from
(
select `company_code` as `c_code`, max(`ltp`) as `m_lcp`, `ycp`,(max(`ltp`) - `ycp`)/`ycp` as `change` from `eod_stock`
group by `company_code`
) `e1`
order by `change` DESC;
答案 1 :(得分:0)
试试这个:
SELECT
`company_code`, max(`ltp`), `ycp`, (max(`ltp`) - `ycp`)/`ycp`) as `change`
FROM `eod_stock`
GROUP BY `company_code`
ORDER BY `change` DESC;
您已将关键字GROUP
写错了
编辑:不需要SUM();)