Sqlite GROUP查询

时间:2016-04-04 14:27:27

标签: sqlite

我需要对测试结果进行分组" PASS" /"失败"用于序列号。如果一个或多个测试"失败"序列号的结果是" FAIL"

CREATE TABLE IF NOT EXISTS Test
(
    Id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
    Product TEXT NOT NULL,
    Serial INTEGER NOT NULL,
    Result TEXT NOT NULL,
    NTest INTEGER NOT NULL
    );

INSERT INTO Test (Product, Serial, Result,Ntest)
VALUES ('Sample', 1, 'PASS',1),('Sample', 1, 'FAIL',2),
('Sample', 1, 'PASS',3),('Sample', 2, 'PASS',1),
('Sample', 2, 'PASS',2),('Sample', 2, 'PASS',3);

SELECT Product,Serial,Result
FROM test
GROUP BY Serial;

DELETE FROM test;
DROP TABLE test;

我需要这个:

"Sample"    "1" "FAIL"
"Sample"    "2" "PASS"

但结果是:

"Sample"    "1" "PASS"
"Sample"    "2" "PASS"

感谢

1 个答案:

答案 0 :(得分:0)

将结果分组为每个组的单个输出行。 您不能简单地列出未自行分组的列;它只会来自该组中的随机行。

在这种情况下,'F'< 'P',因此您需要组中的最小值:

SELECT Product, Serial, MIN(Result)
FROM test
GROUP BY Serial;