Mam taką tablicę:
id name status
------------------------
3 test_1 passed <---
2 test_1 skipped
1 test_1 failed
3 test_2 skipped
2 test_2 skipped
1 test_2 failed <---
2 test_3 skipped <---
1 test_3 skipped
Chciałbym posegregować kolumnę name
na podstawie id
od największego do najmniejszego, a następnie zwrócić te rekordy, w których pierwszą wartością kolumny status
jest nie skip. Czyli dla test_1
byłby to rekord o id=3
, dla test_2
rekord o id=1
, a dla test_3
rekord o id=2
ponieważ wszystkie wartości są skipped
Mam z tym problem, ponieważ, po group by
mogę się odnieść do danych tylko poprzez funkcje agregacyjne, a ja potrzebuję znaleźć określony rekord na podstawie wartości kolumny status
dla każdej z grupy.
Na koniec muszę podliczyć ilość wystąpień passed
, failed
, skipped