如何选择想要的股票行情?

问题描述 投票:0回答:1

原始数据如下--

raw.csv
:

 ticker ,    date    ,value
 a      , 2023-12-20 ,6.01
 a      , 2023-12-21 ,-1
 aa     , 2023-12-20 ,0.53
 aa     , 2023-12-21 ,-0.88
 aacg   , 2023-12-20 ,-0.01
 aacg   , 2023-12-21 ,-0.02
 aact   , 2023-12-20 ,0.02
 aact   , 2023-12-21 ,0.03

创建用于导入的表:

create table stock (ticker text,date date,close numeric(4,2));

导入raw.csv:

\copy stock from 'raw.csv' with csv  header delimiter ',';

我想选择所有值大于零且日期为“2023-12-20”的股票,同时值小于零且日期为“2023-12-21”。

select ticker from stock where  (close>0 and date='2023-12-20') and (close<0 and date='2023-12-21') group by ticker;
 ticker 
--------
(0 rows)

可以看到

a
aa
满足条件,那么如何获取股票呢?

postgresql
1个回答
0
投票

查询中的

group by
确实没有意义,因为您没有进行聚合(
SUM
AVG
COUNT
等)。

除此之外,你犯的错误是这样的句子“我想选择验证条件A的记录和验证条件B的记录”翻译成“我想选择验证任一条件的记录” A OR 条件 B(或两者)”。因此,查询应该是:

select ticker from stock where  (close>0 and date='2023-12-20') or (close<0 and date='2023-12-21')

© www.soinside.com 2019 - 2024. All rights reserved.