oracle

REGEXP - Wyrażenie regularne

REGEXP_COUNT() - Zliczanie znaków

Zliczanie wystapień konkretnego znaku

regexp_count('z1ap3as','a')

Zliczanie wystapień konkretnego znaku (bez case sensivity)

regexp_count('z1ap3as','A',1,'i')

Zliczanie liter

regexp_count('z1ap3as','[[:alpha:]]')

Zliczanie cyfr

Tags: 

Funkcje okna

Suma wartości wiersza poprzedzającego oraz obecnego

select
kol1,
kol2,
sum(kol3) over (order by kol1 rows between unbounded preceding and current row) wzrost
from tab
order by 1

select
kol1,
kol2,
sum(kol3) over (order by kol1 rows unbounded preceding) wzrost
from tab
order by 1

Tags: 

FIRST, LAST - Wyszukiwanie wartości w kolumnie

FIRST - Wartość pierwsza w grupowaniu

select
kol1,
max(kol2),
max(kol3) keep (dense_rank first order by kol2 desc)
from tab
group by kol1

LAST - Wartość ostatnia w grupowaniu

select
kol1,
max(kol2),
max(kol3) keep (dense_rank last order by kol2 desc)
from tab
group by kol1

Tags: 

LIST_AGG - Agregacja danych w jednym wierszu

Dla wersji Oracle 11g wzwyż

select
kol1,
listagg(kol2, ' ') within group (order by kol2) lista
from tab
group by kol1

Dla błędu ORA-01489: napis otrzymany w wyniku konkatenacji jest zbyt długi należy dorzucić on overflow truncate

listagg(distinct col1, '; ' on overflow truncate)

Tags: 

Funkcje okienkowe LAG, LEAD

LAG - Poruszanie się po wcześniejszych wierszach

select
kol1,
kol2,
kol3,
LAG(kol1 || ' ' || kol2, 1, '----') OVER (order by kol3) wczesniej,
LEAD(kol1 || ' ' || kol2, 1, '----') OVER (order by kol3) pozniej
from tab

LEAD - Poruszanie się po późniejszych wierszach

Tags: 

INVISIBLE, VISIBLE - Ukrywanie i odkrywanie kolumn

INVISIBLE - Ukrywa kolumny, nie pozwala na ich aktualizację

alter table tab modify (kol1 invisible, kol2 invisible);

VISIBLE - Odkrywa kolumny

alter table tab modify (kol1 visible, kol2 visible);

Operacje te mogą służyć do dodawania nowych kolumn w środku tabeli.

Tags: 

FETCH - Wypisywanie pierwszych wierszy zestawu danych

Wypisanie pierwszych 10 wierszy

select *
from tab
fetch first 10 rows only

Wypisanie 20 procent pierwszych wierszy

select *
from tab
fetch first 20 percent rows only

Wypisanie pierwszych 10 wierszy z pominięciem pierwszego wiersza

Tags: 

NTILE, WIDTH_BUCKET - Podział zestawów danych

NTILE - Dzieli zestaw danych na równe części

select
kol1,
kol2,
kol3,
ntile(3) over (order by kol3 desc) nt
from tab

WIDTH BUCKET - Dzieli zestaw danych na części w zależności od ustalonych wartości granicznych.

Tags: 

ROW_NUMBER - Pozycja wiersza

ROW_NUMBER - Pozycja wiersza, działa także w wersji z partycjami

select
kol1,
kol2,
kol3,
kol4,
row_number() over (order by kol4 desc) row_numb,
row_number() over (partition by kol3 order by kol4 desc) row_numb_part
from tab1

Tags: 

CUME_DIST, PERCENT_RANK - Rozkłady wartości

CUME_DIST - Oblicza skumulowany rozkład wartości w grupie wartości. Dla danego wiersza CUME_DIST jest liczbą wierszy o wartości mniejszej lub równej wartości wiersza.
PERCENT_RANK - Oblicza względną rangę wiersza w grupie wierszy. Funkcja jest podobna do CUME_DIST, z tym, że nie uwzględnia bieżacego wiersza.

Tags: 

Strony

Subskrybuj RSS - oracle