2016-04-04 7 views
-1

シリアル番号はテスト結果を「PASS」/「FAIL」にグループ化する必要があります。あるSqlite GROUPクエリ

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

が、結果:1つ以上のテスト場合は、シリアル番号の結果は

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; 

が、私はこれを必要とする "FAIL" である "FAIL"

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

おかげ

+0

シリアルが一意ではありませんが、私は同じシリアルのためのテストのいくつかの種類があり、その結果は、「保存」されますPASSまたはFAILのように。 Product、Serial、Resultという行を1つずつ持つ必要があります。同じシリアルのすべての行にPASS – Stacker

答えて

0

グループ化すると、グループごとに1つの出力行になります。 グループ化されていない列を単純にリストすることはできません。それはグループ内のランダムな行から来ます。あなたは、グループ内の最小値たいので、この場合は

'F' < 'P'は、:

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

がある場合、結果はPASSです。作業。ありがとうございました – Stacker