Cześć. Chciałbym poruszyć tutaj dwie kwestię i proszę Was o ewentualną poradę czy wskazówkę. Kilka lat temu skończyłem technikum informatyczne, potem studiowałem inny kierunek(nie skończyłem), poszedłem do pracy (finanse), obecnie jestem na pierwszym roku ekonomii. Od jakiegoś czasu z racji powrotu mojej zajawki na kodowanie z technikum, uczę się Pythona. Do tego chciałbym jeszcze przypomnieć sobie SQLa. Uczę się bardzo regularnie, i ten rok chciałbym w 100% poświecić na dojście do poziomu
  • 10
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@ATLETICO: ja bym kombinował z pythonem w finansach, połączenie wiedzy specjalistycznej z programowaniem może dać Ci więcej niż klepanie jakiś stronek internetowych.
  • Odpowiedz
Jakiej konwencji nazewniczej (naming convention) używacie do nazywania transakcji?

Zastanawiam się na ile szczegółowa powinna być taka nazwa.
Czy jeśli w transakcji dokonuję aktualizacji jakiejś tabeli to czy nazwa transakcji powinna się w jakiś sposób odnosić do nazwy tejże tabeli?

Czy może lepiej nie używać detali technicznych tylko użyć nazwy, która bardziej odzwierciedla wpływ biznesowy np. ChangeDebtorNameTransaction.
  • 1
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Siema powie mi ktoś co robi tu źle że wywala mi blad "Foreign key constraint is incorrectly formed". Idproducenta ma byc kluczem obcym powiazanym z id z tabeli producenci

ALTER TABLE produkty
ADD FOREIGN KEY (id_producenta)
REFERENCES producenci(id);

#sql #bazydanych
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

#sql #bazydanych #programowanie #postgresql
Próbuję wdrożyć pagination oparty na metodzie „keyset”, zamiast tradycyjnie „offset”.
Wszystko jest jasne dopóki strony idą do przodu np:
SELECT * FROM users WHERE id > 1500 ORDER BY ID LIMIT 10.
Ale co zrobić gdy użytkownik się cofa? Teoretycznie mogę odwrócić znak większości i zmienić DESC na ASC, ale wtedy otrzymuję wyniki w odwrotnej kolejności. Da się to
Alodnog - #sql #bazydanych #programowanie #postgresql 
Próbuję wdrożyć pagination opa...

źródło: comment_1611067419eLX7l6HWdpi5hdPRa7JQng.jpg

Pobierz
  • 9
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Campell: W sensie jak pójść w tył? Ja tylko w tym moim WHERE zaznaczam granicę od której liczyć rekordy, więc jeśli chciałbym się cofnąć to mógłbym zrobić WHERE id < 1500 ORDER BY id ASC LIMIT 10. I to zadziała, zwróci mi 10 właściwych rekordów, ale w odwrotnej kolejności niż bym szedł do przodu
  • Odpowiedz
@Alodnog: Wybierz interesujące Cię rekordy ze strony w podzapytaniu i tam zrób asc/desc jak tam chcesz, a w nadrzędnym zapytaniu posortuj jeszcze raz po tym czym chcesz czyli po id. np.

select * from (
select SELECT * FROM users WHERE id < 1500 ORDER BY ID DESC LIMIT 10
) as pusr
order by pusr.id asc;
  • Odpowiedz
via Wykop Mobilny (Android)
  • 0
Mam proste zapytanie SQL, zwykły select z 3 warunkami. Na końcu jest sortowanie, i obcięcie wyników do kontretnej ilości za pomocą LIMIT. I wszystko jest ok, dopóki nie zmienię warunku w taki sposób, aby rezultatem było 0 wierszy. Wtedy czas trwania zwiększa się z 0.01s do ponad 20sekund. Usunięcie limitu sprawia, że zapytanie wykonuje się tak szybko jak przed zmianą warunku i z zachowaniem limitu. Czyli:
-select zwracający 100 rekordów i obcięty
  • 7
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@bomba4: Nie wiem jak do końca działa limit w mysql ale najwidoczniej liczy rekordy podczas wykonywania zapytania co może faktycznie orać optymalizację. Z uwagi, że limit 0 podejrzewam, że liczy każdy rekord jaki zapytanie wypluwa, jeden po drugim.

Operowanie na zapytaniu zagnieżdżonym ustala już konkretną ilość rekordów i na końcu ogranicza. Jest to szybsze dla silnika. W prawie każdej swojej procedurze w pracbazie wykonuję takie zagnieżdżenia albo korzystam z tabel
  • Odpowiedz
via Wykop Mobilny (Android)
  • 0
@thomekh: tylko tu nie chodzi o limit 0, tylko o sytuację kiedy masz 2 zapytania sqlowe które różnią się jednym warunkiem. Pierwsze zapytanie (bez limitu) zwraca 100 rekordów, a drugie 0. Oba się wykonują w ciągu 0.01s. Następnie do obu dopisuje Limit 10, i to pierwsze nadal się wykonuje 0,01 a to drugie już 22s

Ogarnąłem to tak jak pisałem, ale i tak jest to dla mnie dziwne. Sam limit
  • Odpowiedz
chcę po przeniesieniu z tabeli order do oldorders, aby przeniesione pola zostały usunięte w tabeli order. Ktoś pomoze?
INSERT INTO old
orders (name)
SELECT name
FROM orders WHERE id=$id");
#bazydanych #mysql #sql
  • 5
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Panowie bazodanowcy jak to jest, że wynik kwerendy otrzymuję od razu a query executed time wskazuje na kilkadziesiąt sekund? Może z pozoru banalne pytanie, ale proszę o wytłumaczenie
#sql #bazydanych
  • 9
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

#pomocy #excel #sql
Mireczki,
mam dwie tabele - jedna zawiera nagłówki faktur, w drugiej są pozycje faktur. W systemie łączone są poprzez pola ID główki. Nie mogę sobie poradzić, jak wciągnąć te informacje na arkusz w taki sposób, by np. do faktury z ID główki 15 podstawiały się pozycje z tym samym id. Próbowałem scalania, relacje w power pivot ale cały czas stoję w miejscu. Znajdzie
  • 8
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@m_wazowski: Jest na to kilka sposobów, ja bardzo polecam Power Query.

1. Utwórz połączenia do obu tabel:
Dane -> Z tabeli / zakresu
Plik -> Zamknij i załaduj do...
Utwórz tylko połączenie
  • Odpowiedz
@xtracom: Bardzo, bardzo Ci dziękuję! Wczoraj z tej radości napisałem komentarz z podziękowaniem i nie kliknąłem wyślij ( ͡° ͜ʖ ͡°) Wielkie dzięki Kolego, należy Ci się dobre piwko
  • Odpowiedz
#plsql #sql #oracle
Mam tabele użytkownicy z kolumnami id, imię, nazwisko
Kurła Mirki, napisałem sekwencję i triggera, które zwiększają mi kolumnę id w tabeli o 1 przed insertem.
I w insercie nie podaję id, bo to ogarnia trigger.
Chciałem napisać funkcję dodającą użytkownika. Ale przy tworzeniu funkcji musze podać to id.. jak to "obejść"?
  • 33
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Mam takie pytanie.
Mam dwie tabele, które nie są w żaden sposób ze sobą połączone, ale obie mają kolumne "Name". Jak będzie wyglądał sql, który zwróci mi names z obu tabel? Da się tak w ogóle zrobić?

#sql #bazydanych
  • 7
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

mam w #powerbi kolumne typu date i obok druga kolumne z int gdzie jest godzina. jak utworzyc nowa kolumne datetime gdzie bedzie i data i ta godzina? trzeba jakos w daxie rzezbic czy da sie inaczej? #sql #excel
  • 7
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@bla_bla_bla: niestety, mysql smierdzi. Albo uzywaj postgresa, albo pozostaje Ci dodac dodatkowa kolumne do tego. Mozesz tez dodac dodatkowa tabele, ktora bedzie miec FK do tej Twojej tabelki, do wartosci nie-nullowych i wyszykiwac po tej nowej.
  • Odpowiedz
mircy potrzebuję pomocy z #sql
mam trzy tabele, jedna zawiera ceny i SKU, druga zawiera ID produktów i SKU, a trzecia zawiera ID produktów i ceny.
Jak się domyślacie potrzebuję wsadzić ceny z pierwszej, do cen z trzeciej, ale jedyny wspólny parametr to SKU z pierwszej i drugiej.
Jak napisać zależność żeby instert nowych cen wszedł pod właściwe ID dla każdego produktu?

inaczej co się musi stać.
  • 9
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

via Wykop Mobilny (Android)
  • 0
@cavou: to zrób parę kursów online a resztę się doszkolisz jak będzie trzeba. W dogłębną wiedzę nie wejdziesz szybko a może nie będzie potrzebne a pobieżnie starczy.
  • Odpowiedz