因此,我在數據庫中進行了大量測試,每個測試都屬於一個類別,每個測試「組」都有一個「序列號」(序列號時間戳) 。每個測試有通過或失敗的結果,就像這樣:MySQL GROUP BY MAX兩列
TEST Table
TEST_ID TEST_NAME TEST_CAT TEST_SN RESULT
1 test_a Basic 112233 Pass
2 test_b Basic 112233 Pass
3 test_c Basic 112233 Pass
4 test_d Basic 112233 Fail
5 test_e Basic 112233 Pass
6 test_a Basic 223344 Fail
7 test_b Basic 223344 Pass
8 test_c Basic 223344 Pass
9 test_d Basic 223344 Fail
10 test_w Advacned 112233 Fail
11 test_x Advacned 112233 Pass
12 test_y Advacned 112233 Pass
13 test_z Advacned 112233 Pass
我試着去製作一個查詢每個類別,其中TEST_SN
最高只返回行。 所以結果我試着迴應該是這樣的:
TEST_ID TEST_NAME TEST_CAT TEST_SN RESULT
6 test_a Basic 223344 Fail
7 test_b Basic 223344 Pass
8 test_c Basic 223344 Pass
9 test_d Basic 223344 Fail
10 test_w Advacned 112233 Fail
11 test_x Advacned 112233 Pass
12 test_y Advacned 112233 Pass
13 test_z Advacned 112233 Pass
因爲有TEST_SN
的「112233」和「223344」的「基本」,我想忽略從早期 所有測試(小) TEST_SN
(第1,2,3,4和5行)。由於「112233」是Advacned中唯一的TEST_SN
,我想要 保留所有這些行(10,11,12和13)。
我可以接近這個查詢:
SELECT
t.test_id,
t.test_name,
t.test_cat,
MAX(t.test_sn),
t.result
FROM
car_test t
GROUP BY
t.test_name, t.test_cat
但繼承人我得到什麼:
TEST_ID TEST_NAME TEST_CAT TEST_SN RESULT
1 test_a Basic 223344 Pass
2 test_b Basic 223344 Pass
3 test_c Basic 223344 Pass
4 test_d Basic 223344 Fail
5 test_e Basic 112233 Fail
10 test_w Advanced 112233 Fail
11 test_x Advanced 112233 Pass
12 test_y Advanced 112233 Pass
13 test_z Advanced 112233 Pass
第5行仍然存在。我想要SELECT
只有那些有MAX
任何想法?
像魅力一樣工作。謝謝。 – mcmurphy