Zliczanie takich samych rekordów

0

Witam.
Próbuje w SQL (Oracle) zrobić takie coś, aby rekordy o takiej samej kolumnie (np jakiś barcode) były wyświetlone w postaci:

rekord_1_1     5
rekord_1_2
rekord_1_3
rekord_1_4
rekord_1_5
rekord_2_1     2
rekord_2_2

Jakieś pomysły ??

1

poczytaj o group by i count

0
fasadin napisał(a):

poczytaj o group by i count

Chodzi właśnie o to, aby rekordy wyświetlały się wszystkie natomiast ich liczba (spełniająca jakieś warunki) była wyświetlana tylko przy jednym z nich.

P.S
w skrócie:
GROUP BY - grupuje,
COUNT - zlicza (także z warunkami).

0

@Kremius

Sprawdź coś takiego.

select kolumna1, count(kolumna2) from tabela group by kolumna1 

EDIT: Może napisz konkretnie jakie masz przykładowe dane i co chcesz osiągnąć. Przyznam się, że nie do końca rozumiem o co Ci chodzi.

0

Chodzi o to, aby zliczał ile rekordów spełnia jakiś tam warunek, przy czym liczbę ile ich spełnia chciałbym wyświetlić tylko przy pierwszym takim rekordzie.

0

Na oko wygląda mi to na rollup -> https://technet.microsoft.com/en-us/library/ms189305(v=sql.90).aspx
Grupowanie with rollup doda ci kolumne podsumowującą dla grupowanych rekordów.

0

Jest tak:

PL695017	ENDO 70290148	AL.DZIECI POLSKICH 20  	INSTYTUT-POMNIK CENTRUM 	        04736	WARSZAWA		2
PL695018	ENDO 70290148	AL.DZIECI POLSKICH 20  	INSTYTUT-POMNIK CENTRUM 	        04736	WARSZAWA		2
PL693618		                AL.JANA PAWLA 120A BUD.	SAMODZIELNY ZESPOL 	                07410	OSTROLEKA		6
PL693617	ENDO 70289859	AL.JANA PAWLA 120A BUD.	SAMODZIELNY ZESPOL           	07410	OSTROLEKA		6
PL693612	ENDO 70289860	AL.JANA PAWLA 120A BUD.	SAMODZIELNY ZESPOL 	                07410	OSTROLEKA		6
PL693613	ENDO 70289860	AL.JANA PAWLA 120A BUD.	SAMODZIELNY ZESPOL 	                07410	OSTROLEKA		6
PL693614	ENDO 70289860	AL.JANA PAWLA 120A BUD.	SAMODZIELNY ZESPOL 	                07410	OSTROLEKA		6
PL693616		                AL.JANA PAWLA 120A BUD.	SAMODZIELNY ZESPOL 	                07410	OSTROLEKA		6

A powinno być tak ;)

PL695017	ENDO 70290148	AL.DZIECI POLSKICH 20  	INSTYTUT-POMNIK CENTRUM 	        04736	WARSZAWA		2
PL695018	ENDO 70290148	AL.DZIECI POLSKICH 20  	INSTYTUT-POMNIK CENTRUM 	        04736	WARSZAWA		
PL693618		                AL.JANA PAWLA 120A BUD.	SAMODZIELNY ZESPOL 	                07410	OSTROLEKA		6
PL693617	ENDO 70289859	AL.JANA PAWLA 120A BUD.	SAMODZIELNY ZESPOL           	07410	OSTROLEKA		
PL693612	ENDO 70289860	AL.JANA PAWLA 120A BUD.	SAMODZIELNY ZESPOL 	                07410	OSTROLEKA		
PL693613	ENDO 70289860	AL.JANA PAWLA 120A BUD.	SAMODZIELNY ZESPOL 	                07410	OSTROLEKA		
PL693614	ENDO 70289860	AL.JANA PAWLA 120A BUD.	SAMODZIELNY ZESPOL 	                07410	OSTROLEKA		
PL693616		                AL.JANA PAWLA 120A BUD.	SAMODZIELNY ZESPOL 	                07410	OSTROLEKA		
0

i na podstawie czego ma przestac wyswietlac count? bo tego nadal nie napisales...

1

@Kremius tak sie po prostu nie da, a przynajmniej nie bez kombinowania. Generalnie zapytanie SQL zwraca ci krotki które mają w kolumnach pewne wartości. A ty sobie chcesz (Bóg jeden wie po co...) w pewnych sytuacjach usuwać pewne dane. Zapytanie służy do pobrania danych z bazy a nie do ich obróbki! Pobierz dane jak człowiek a potem co sobie z nimi zrobisz to juz twoja sprawa, ale nie próbuje na siłę tego zrobić po stronie bazy...

0

W pierwszej kolumnie jest ta sama wartość (gdzie ostatnia cyfra to liczba porządkowa).

0

W excelu wygląda to tak:
=JEŻELI(D2<>D1;LICZ.JEŻELI(D:D;D2);"")

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