Sqllite:随着时间的推移发现异常值

时间:2017-08-03 13:46:25

标签: sql sqlite

我有以下sqllite表:

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

我想在2个不同的日期找到值大于0的所有帐号。我在想:

SELECT * from test WHERE value> 0 GROUP BY account

可能是一个开始,但我不知道如何评估群体的大小

1 个答案:

答案 0 :(得分:2)

对此查询进行短语的一种方法是对具有大于零值的帐户进行汇总,然后保留具有两个或更多不同日期的帐户:

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

我发现您的value列已声明为TEXT。我想如果你想对这个列进行数值比较,这应该是一个整数。