SQL - 只有一个请求

时间:2013-04-11 09:55:38

标签: sql

我有一个名为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. 计算打开的行数<靠近
  4. 每天,company_symbol收盘率最高的次数
  5. 每天,company_symbol所拥有的次数 最低关闭
  6. 我试图获得我想要的信息,但我没有成功。 是否有可能只在一个请求中获得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 何时关闭(从日期开始选择最多(关闭));

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

1 个答案:

答案 0 :(得分: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个请求?