wybranie pierwszego wiersza z podzbioru danych w sqlu

0

Drodzy, mam dane, które pochodzą z dwóch źródeł. I są duplikowane. Chcę zsumować wartość unikatowego towaru, czyli pierwszy wiersz z każdego podzbioru danych wg id_system_2. Dążę do tego, aby wynik zawierał 2 wiersze (w poniższej tabeli wiersz 1 i 7).
id_system_1 id_system_2 wartość towar
1 9 5 rower
2 9 5 rower
2 9 5 rower
3 9 5 rower
4 9 5 rower
5 9 5 rower
6 11 6 samochód
7 11 6 samochód
8 11 6 samochód
9 11 6 samochód
10 11 6 samochód
Czy pomożecie jak napisać zapytanie w sqlu?

0

Nie testowałem, ale coś w ten deseń:

select tab1.id_system_1_min, tab1.id_system_2, tab1.towar tab2.wartosc_sum
from 
	(select min(id_system_1) id_system_1_min, id_system_2, towar
		from tabela
		group by id_system_2, towar
	) tab1
	,(
		select id_system_2, towar, sum(wartosc) wartosc_sum
		from tabela
		group by id_system_2, towar
	) tab2
where tab1.id_system_2 = tab2.id_system_2 and tab1.towar = tab2.towar
0

W świetle powyższego komentarza mój powyższy selekt nie jest poprawny. Proszę jeszcze o odpowiedź:

czyli wynik zapytania wyświetlony na ekranie dla powyższych danych ma być taki (jeżeli nie, napisz po prostu jaki ma być odświetlony rezultat)? :

wartość towar
5 rower
6 samochód

4

with tabela(id_system_1, id_system_2, wartosc, towar)
as
(
values
(1,9,5,'rower'),
(2,9,5,'rower'),
(2,9,5,'rower'),
(3,9,5,'rower'),
(4,9,5,'rower'),
(5,9,5,'rower'),
(6,11,6,'samochód'),
(7,11,6,'samochód'),
(8,11,6,'samochód'),
(9,11,6,'samochód'),
(10,11,6,'samochód')
)
, x as
(
select *, row_number() over(partition by id_system_2 order by id_system_1) lp from tabela
)
select id_system_1, id_system_2, wartosc, towar from x where lp=1

1 użytkowników online, w tym zalogowanych: 0, gości: 1