-1

我有一个名为 eod 的表,并且有一个示例。

| eod_id | company_symbol |    date    | open  | close | high  |  low  |
|      1 |            AAA | 01-01-2000 | 40.00 | 42.00 | 43.00 | 39.00 |

对于给定的 company_symbol,我想:

  1. 计算(打开某个日期)/(关闭另一个日期)- 1
  2. 计算打开>关闭的行
  3. 计算 open < close 的行数
  4. 每天,company_symbol 收盘价最高的次数
  5. 每天,company_symbol 收盘价最低的次数

我试图获取我想要的信息,但没有成功。是否可以仅在一个请求中获取 5 个信息?

希望你能帮助我,谢谢,

史蒂夫

PS:我尝试了什么:

1.

SELECT (SELECT OPEN FROM eod WHERE company_symbol="AAPL" AND DATE="2013-04-05") 
/ (SELECT OPEN FROM eod WHERE company_symbol="AAPL" AND DATE="2000-01-03") - 1;

2.

SELECT COUNT(*) FROM eod WHERE company_symbol="AAPL" AND CLOSE>OPEN;

3.

SELECT COUNT(*) FROM eod WHERE company_symbol="AAPL" AND CLOSE<OPEN;
  1. SELECT COUNT(*) FROM EOD WHERE company_symbol IN (SELECT company_symbol FROM eod WHERE IN (SELECT max(CLOSE) FROM eod GROUP BY DATE));

但是这个不起作用,你能帮我解决这个问题吗?我也认为这些请求可以简化,但我不知道如何。

4

1 回答 1

0

如果您只需要将“5 个信息仅包含在一个请求中”分组,请尝试针对您想要的内容提出 5 个请求,然后只需

SELECT  
(%your_request1%) as 'Request 1',  
(%your_request2%) as 'Request 2',  
(%your_request3%) as 'Request 3',  
(%your_request4%) as 'Request 4',  
(%your_request5%) as 'Request 5'  
FROM EOD e  
WHERE company_symbol=AAA  

或者你也需要这 5 个请求?

于 2013-04-11T11:42:01.377 回答