Nadanie numerów inkrementujących się do różnych wartości

0

Witam wszystkich,

chciałbym przypisać do osobnej kolumny w bazie numery, tak jak zamieściłem to na screenie w col3, ma ktoś pomysł jak to ugryźć?

tak aby tam gdzie col1 jest takie same przypisujemy cyfry od 1 w górę, ale col2 musi być też wszędzie równe i jak col2 będzie się różnić to od 1 znowu musi zacząć

chyba trochę namieszałem, ale myślę że screen wytłumaczy dobrze,

z góry dziękuję za pomoc

zastanawiam się czy to czasem nie powinno zostać rozwiązane poza sql query a jakimś skryptem osobnym ale aktualnie brak pomysłów :(

screenshot-20220406143213.png

1

Szczerze mówiąc - totalnie nic nie rozumiem, więc może spróbuj opisać to jeszcze raz.
Ale ważne pytanie - czy chcesz, żeby ta trzecia kolumna się tworzyła na bieżąco, podczas dodawania elementów, czy masz już gotową tabelę i chcesz do niej dołożyć tą trzecią kolumnę?

3

Nie wiem, czy w MySQL zadziała tak, jak chcesz, ale wydaje mi się, że to będzie ok:

select col1, col2, dense_rank() over (partition by col2 order by col1)
from twoja_tabela;

//edit: z tego, co widzę, MySQL ma dense_rank od wersji 8.0.

0

@Los Bomberos:

Dokładnie o to mi chodziło, dzięki wielkie, zapiszę sobie to rozwiązanie na przyszłość

a odpowiadając na pytanie @cerrato

zamysł był taki

Col2 to są adresy regałów na których mam ułożone rzeczy, regał jest podzielony na półki i to już mam wykonane, mam już to podzielone, teraz mam tabele z przedmiotami które maja przypisane adresy regałów(col2) oraz adres półki(col1), chce przypisać id półki dla poszczególnego regału może być taka sytuacja ze regał ma więcej niż 2 półki czyli col3 byłoby na przykład 3 lub 4
Col3 posiadam już w bazie zrobione i jest puste
A wpisów w bazie mam aktualnie 12 tysięcy wiec ręczne wspinanie by mnie zabiło

ale z pomocą Los Bomberos udało się, dzięki!

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