SQLite查询具有特定日期的高整数

时间:2016-11-29 09:09:57

标签: sqlite python-3.x

附件是来自SQLite的数据格式

Date, Stock_Code, Yahoo_Stock_Code, Open, High, Low, Close, Adj Close, Volume
('2016-11-28', 1, '0001.HK', 94.55, 95.2, 94.1, 94.6, 94.6, 5909700) 
('2016-11-28', 2, '0002.HK', 74.65, 75.45, 74.6, 75, 74.43, 3050500) 
('2016-11-28', 3, '0003.HK', 14.5, 14.6, 14.4, 14.44, 14.44, 8309500) 
('2016-11-25', 1, '0001.HK', 95.05, 95.55, 94.6, 95.1, 95.1, 3661200) 
('2016-11-25', 2, '0002.HK', 74.45, 74.45, 74.05, 74.3, 73.735, 1434600) 
('2016-11-25', 3, '0003.HK', 14.44, 14.46, 14.36, 14.46, 14.46, 5663800) 
('2016-11-24', 1, '0001.HK', 95.85, 96.05, 95.05, 95.6, 95.6, 2756900) 
('2016-11-24', 2, '0002.HK', 74.2, 74.3, 73.9, 74.05, 73.487, 1401800) 
('2016-11-24', 3, '0003.HK', 14.38, 14.46, 14.34, 14.36, 14.36, 7738800) 
('2016-11-23', 1, '0001.HK', 96.6, 96.9, 95.95, 96.2, 96.2, 3678500) 10
('2016-11-23', 2, '0002.HK', 74.45, 75, 74.15, 74.55, 73.983, 3155800) 11
('2016-11-23', 3, '0003.HK', 14.36, 14.5, 14.34, 14.38, 14.38, 8022700) 
('2016-11-22', 1, '0001.HK', 96.3, 96.8, 95.65, 96.5, 96.5, 3567000) 13
('2016-11-22', 2, '0002.HK', 73.35, 74.4, 73.35, 74.05, 73.487, 3841700) 
('2016-11-22', 3, '0003.HK', 14.42, 14.42, 14.32, 14.36, 14.36, 16001000) 

考虑到3个股票代码,我想创建一个查询,可以告诉我2016-11-28的3只股票的收盘价高于2016-11-22收盘的3只股票。此外,我希望我可以将此查询放入列表中以供进一步分析。

我是SQLite的新手,到目前为止我还没有尝试过多少。我只能按如下方式进行简单的查询:

cur.execute("SELECT * FROM Historical_Table "
        "WHERE Date BETWEEN '2016-11-22' AND '2016-11-28' "
        "AND Stock_Code IN ('1', '2','3' ) ORDER BY Date DESC ")

请告知我是否需要针对每个股票单独进行查询,或者我是否可以一次性完成所有查询。非常感谢你

1 个答案:

答案 0 :(得分:0)

使用CASE表达式:

SELECT CASE WHEN
       (SELECT Close FROM yourTable WHERE Stock-Code = 1 AND Product = '2016-11-28') >
       (SELECT Close FROM yourTable WHERE Stock-Code = 1 AND Product = '2016-11-22')
       THEN 'Yes' ELSE 'No' END