我需要对测试结果进行分组" 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"
感谢
答案 0 :(得分:0)
将结果分组为每个组的单个输出行。 您不能简单地列出未自行分组的列;它只会来自该组中的随机行。
在这种情况下,'F'
< 'P'
,因此您需要组中的最小值:
SELECT Product, Serial, MIN(Result)
FROM test
GROUP BY Serial;