2017-08-03 64 views
0

我有以下sqllite表:Sqllite:随着时间的推移发现异常值

CREATE TABLE test (
    id INTEGER NOT NULL, 
    date TEXT, 
    account TEXT, 
    ........ 
    value TEXT, 
    ....... 
    PRIMARY KEY (id), 
    CONSTRAINT composite UNIQUE (date, account) 
    ) 

我想找到所有的账号其中的值大于0的2个独立的日期。我在想:

SELECT * from test WHERE value> 0 GROUP BY account 

可能是一个开始,但我不知道如何评价组的大小

回答

2

的一种方式,以短语这个查询是聚集在具有大于零的账户值,然后保持具有两个或多个不同日期的帐户:

SELECT 
    account 
FROM test 
WHERE value > 0 
GROUP BY account 
HAVING COUNT(DISTINCT date) >= 2 

我看到你的value列被声明为TEXT。我想这应该可能是一个整数,如果你想做这个列的数字比较。

+0

谢谢,作为一个快速跟进问题:我注意到每个日期只有一行在输出中可见。有没有办法查看具有相同帐号但日期不同的所有行,以便我可以看到一段时间内的值? – user61629

+0

您应该提出一个新问题,因为这与您的原始问题有很大差异。 –

相关问题