-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. open > close の行を数える
  3. open < close の行を数えます
  4. 各日について、company_symbol が最高の終値を示した回数
  5. 各日について、company_symbol の終値が最も低かった回数

必要な情報を取得しようとしましたが、成功しませんでした。1 回のリクエストで 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 CLOSE IN (SELECT max(CLOSE) FROM eod GROUP BY DATE));

しかし、これはうまくいきません。これで私を助けてくれませんか? また、これらのリクエストは簡素化できると思いますが、方法がわかりません。

4

1 に答える 1

0

「1回のリクエストで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 に答える