$mail = $db->SelectLimit("SELECT * FROM (SELECT * FROM mail WHERE owner=".$player -> id." ORDER BY id DESC) AS s GROUP BY topic ORDER BY id DESC", 30, 30 * ($intPage - 1));
mam takie zapytanie. chciałbym, aby pogrupowało mi rekordy wg. topic po najwyższym id w danej grupie.

myślałem, że uda się to osiągnąć za pomocą order by, ale jednak nie - sprawdzałem ręcznie zapytanie w bazie danych i w sumie nie wiem
  • 3
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@patrickwro: Wybieranie nieagregowanych danych przy grupowaniu nie generalnie niedozwolone w standardzie SQL. Zapewne używasz MySQL i tylko dlatego Ci nie wywala błędu, bo ten na to pozwala, ale za to nie masz za bardzo kontroli nad tym, jakie dane zwróci - generalnie z pierwszego wiersza z grupy, ale nie według ORDER BY, tylko według tego, jak odczytał ze storage'u.

Sortowanie jest wykonywane dopiero po wybraniu wierszy (WHERE), zgrupowaniu (GROUP BY)
  • Odpowiedz
Czołem Mirki i Mirabelki
Przedstawiam wam dwa nowe kursy z tematyki #bazydanych #oracle dla początkujących w #sql.

Pierwszy kurs dotyczy instrukcji SQL INSERT | DELTE | UPDATE czyli:
* Jak dodawać rekordy do tabeli dzięki instrukcji SQL: INSERT oraz jak obsłużyć:
-- Błąd: ORA-00001 – naruszono więzy
  • 5
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Siema Mirasy,
potrzebuje jakiś pro tip z #sql a mianowicie mam do zrobienia raport taki jak na zdjęciu.
Mini opis: mamy z tabelek wyciągnięte produkty i one są z wyciągane na podstawie dwóch typów dokumentów (1- przychody , 2 - rozchody)
i w owym raporcie mamy dostać wszystkie produkty i ich stany dla każdej ceny ( tylko typ 1) a dokumenty z typu 2 maja odejmować z tego NAJSTARSZEGO (nawet gdy cena
korkee - Siema Mirasy,
potrzebuje jakiś pro tip z #SQL a mianowicie mam do zrobienia...

źródło: comment_1587923342ZRBKPW0BGZPj5WVlyxLDWJ.jpg

Pobierz
  • 2
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@korkee: spróbuj coś w stylu:

select t1.nazwa,sumprzyjeto - case when rank = 1 then sumwydano else 0 end as ilosc_sztuk, cena from (select nazwa, cena, sum(przyjeto) as sumprzyjeto, min(data) as mindata, dense_rank() over (order by min(data)) as rank
FROM [fun].[dbo].[cennik]
where typ_dok = 1
group by nazwa, cena )
  • Odpowiedz
count(*) vs count(1)
czy jest jakaś różnica czy tylko jak w tym memie z Puchatkiem w t-shircie vs. smokingu :)

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

@heniek_8: w sql serverze mają taki sam plan wykonania jeśli chodzi o execution time (choć z optimizerem w sql serverze nigdy nic nie jest pewne na 100%) Jeśli chodzi o te ułamki ułamków sekund podczas kompilacji wyrażenia to (*) teoretycznie trwa dłużej. Kilka instrukcji procesora więcej, ale to by się chyba dało zauważyć jedynie instalująć sql server na zapalniczce.
  • Odpowiedz
#anonimowemirkowyznania
Muszę to przyznać - jestem słabym programistą.

Mam 2,5 roczne doświadczenie w branży i do tej pory uważam się za słabego programistę. O ile proste rzeczy nie sprawiają mi problemów, to nie potrafię samodzielnie rozwiązywać bardziej zaawansowanych ticketów. Taki stan rzeczy bardzo mnie dobija. Od dłuższego czasu mam przez to doła. Oczywiście staram się rozwijać swoje umiejętności ale mam wrażenie, że niczego nowego się nie nauczyłem.
Czy ktoś z Was
  • 17
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

do programowania trzeba mieć predyspozycje ¯_(ツ)_/¯


@Harmonia: Na szczęście te predyspozycje nie są takie duże, jak to się propaguje w branży. Programista to nie jest lekarz, programista to taki blue collar worker przy komputerze. Krąży głupi mit, że musisz być geniuszem-pasjonatą, by osiągnąć sukces jako programista.
  • Odpowiedz
Czy ktoś z Was jest/był w podobnej sytuacji? Potrzebuję porad, wskazówek na temat tego w jaki sposób efektywnie poprawić swoje programistyczne umiejętności oraz logiczne myślenie.


@AnonimoweMirkoWyznania: Tak, byłem. Potrzebowałem jeszcze 6-7 lat doświadczenia żeby zobaczyć, że nie jestem słabym programistą tylko mam wybujałe oczekiwania pod swoim adresem i chcę doświadczenia tu i teraz.

Generalnie prawda jest taka, że większość z nas to przeciętniacy. Jeśli ktoś uważa że jest nieprzeciętniakiem, albo ma samodzielne
  • Odpowiedz
Chciałby ktoś sobie dorobić i zrobić dla mnie kilka prostych (podobno) zadań z #oracle #plsql #sql ? Ja Oracle'a nie tykam, bo osobiście tym gardzę, więc chętnie komuś zlecę zrobienie :)
na PW podam szczegóły co konkretnie do zrobienia.
  • 4
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Dopiero zaczynam się uczyć.
Mam napisać kwerendę, która pokaże wszystkie osoby w bazie, poza tymi, które mieszkają w Warszawie i mają zawód.

Napisałem coś takiego:

SELECT numer, imie, nazwisko, miejscowosc, zawod
  • 66
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@tomszczyk: nie musisz korzystać ze zeminnych tmp user i tmp date. Po prostu przy insercie użyj odpowiednio i bepośrednio user oraz sysdate
A zamiast tmp_ id użyj sequences na logi.id i wywołaj.
Wtedy będzie już blisko ideału ( ͡° ͜ʖ ͡°)
  • Odpowiedz
@rolson92: REGEX to wyrażenie regularne poszukujące dany string w poszukiwaniu konkretnych znaków. Pierwszy daszek (^) przed nawiasem mówi żeby sprawdzać na początku ciągu, natomiast dolar ($) żeby szukać na końcu ciągu.
  • Odpowiedz
Pany, pytanie. Mam zbiór danych np. List jak takie coś najlepiej wrzucać do bazy MSSQL?
Będę chciał cyklicznie robić coś w stylu Truncate -> GetData -> Insert

Widziałem kilka opcji, ale nie wiem co się teraz stosuje i jest najmniej problematyczne i łatwe do zmiany.
1) SqlCmd / insert przez procedurę SQL (INSERT ... VALUES (@kol1 , kol2) itp. w pętli
2) LINQ (jakieś przykłady?)
  • 12
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@obieq ile jest tych danych? Jeśli raz dziennie to weź nie kombinuj i ogarnij entity framework/linq to sql, jeśli Cię tak orm boli nie wiem z jakiego powodu to napisz sobie generyczny helper na zmianę listy obiektów na tabelę SQL (nie widzę tagu naukaprogramowania więc wnioskuję że sobie poradzisz) i rób to bulk insertem
  • Odpowiedz
via Wykop Mobilny (Android)
  • 0
Treść przeznaczona dla osób powyżej 18 roku życia...
  • 2
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

via Wykop Mobilny (Android)
  • 0
@Blackhorn: to zależy od implementacji aplikacji
Baza danych ma funkcję UPDATE, która nadpisuje dane. Sam musisz zadbać żeby dane były poprawne i spójne
  • Odpowiedz
via Wykop Mobilny (Android)
  • 0
Hej, kiedyś korzystałem z programu który wyświetlał graficznie relacje pomiędzy tabelami, ale nie pamiętam już jak się nazywa, bo teraz korzystam z pgadmina. Czy może ktoś podpowiedzieć?

#postgresql #postgres #bazydanych #sql
  • 3
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Dzieciok: polecam rozwiązywanie ćwiczeń ze strony sql-ex.ru wraz z ich kursem. Kurs dotyczy głównie dialektu MS SQL, natomiast ćwiczenia można rozwiązywać w następujących dialektach: MS SQL, MySQL, Oracle oraz PGSQL.
W zadaniach pracujemy na pięciu przykładowych bazach danych (sklep komputerowy, firma recyklingowa, lotnisko, statki, malowanie) i musimy napisać zapytanie, które zwróci wymagane rekordy uwzględniając strukturę danych i relacje istniejące w danej bazie, np. wyświetl producenta najtańszego komputera, albo wyświetl miasta
  • Odpowiedz
via Wykop Mobilny (Android)
  • 0
Drodzy koledzy i kolezanki ( ͡ ͜ʖ ͡)

Mam baze danych, spis artykulow, w ktorych te same pozycje pojawiaja sie na roznych lokacjach.

Obecnie podwojone pozycje mam w wierszach jeden pod drugim, gdzie kolejno od lewej sa: artykul, kolor, rozmiar, lokacja, ilosc na
  • 5
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Pacjent: Za końcem pierwszej lokacji (załóżmy, że w komórce F2) wpisz =D3 i przeciągnij ją do G2. Następnie zaznacz zakres F2:G3, przeciągnij w dół do końca tabeli, skopiuj i wklej jako wartości. Na koniec odfiltruj puste wiersze w kolumnie F i je usuń.
  • Odpowiedz