[ #mysql #sql ]

mirki, z sql zazwyczaj nie mam problemu, ale chyba utkąłem.

w tabeli są dwie kolumny: godzina [time] i liczba [int]. pytanie: jak pogrupować dane po godzinie do dwóch stref czasowych 00:00:00 - 11:00:00 i 12:00:00 - 23:00:00 żeby zliczyć sumę liczb w obu tych zakresach godzin? przyświeca mi idea z podzapytaniem w leftjoin do samej sobie, ale skomplikowanie rozwiązania znacznie przewyższa wartość "projektu" ;)
  • 13
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@tomix: Przy takim przyroście to bez różnicy - każde rozwiązanie będzie dobre - i union i case. Ewentualnie możesz zrobić triggera on insert, który będzie ustawiał z automatu strefę czasową - odpytanie takiego widoku będzie szybsze (o ułamki sekund - mając na uwadze liczbę danych) i przeniesiesz kod na tabele. Ale to bardziej sztuka dla sztuki.

BTW - zamiast rozpisywać drugiego whena w case, możesz zrobić else.
  • Odpowiedz
@sokytsinolop: Pisząc jako SP oszczędzisz latania sobie w te i wewte między serwerem php a bazą danych więc będzie szybciej. Aczkolwiek ja bym jednak dał pole parrent jako typ SET i korzystał z FINDINSET(), dla czwórki ustawisz jako '3,1' i będzie cacy. Chociaż oczywiście to rozwiązanie też nie jest najszybsze bo to w końcu MySQL
  • Odpowiedz
Jakich poleceń używa się w SQL do tworzenia relacji między kolumnami różnych tabel? Macie jakieś dobre źródło? Ew. jakieś dobre narzędzie do automatycznego tworzenia diagramów baz danych, najlepiej lokalnych - .db? Może jakieś funkcje VS?

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

Jak zwykle - kontakt do rekrutera na pw

Role: SQL Server Developer

Location: Dublin West (excellent transport links)

Salary:
  • 23
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

kontrakt 2-3 tygodnie


jest potem szansa pracy zdalnej

@aaadaaam: Po pierwsze to kontrakty zwykle trwaja 3miesiace+.Albo moga trwac latami.

No i z tego co wiem to jesli nie masz wczesniejszegho, weryfikowalnego doswiadczenia na wyspach to moze byc ciezko wskoczyc tak szybko na parce zdalna. U mnie w firmie sporo osob pracuje zdalnie - albo tak jak ja - 100km od Dublina, albo tak jak inni koledzy - z Polski, Kanady,
  • Odpowiedz
SELECT YEAR(data) AS RokSprzedazy, COUNT(fakturaID) AS IloscDokumentow FROM faktury GROUP BY RokSprzedazy HAVING RokSprzedazy BETWEEN 2006 AND 2008


@singollo: W Mysql tak - dlatego tez....

Note that MySQL, unfortunately, doesn't adhere to this standard, causing nothing but confusion. Don't fall for MySQL's tricks. GROUP BY transforms table references. You can thus only reference columns also referenced in the GROUP BY
  • Odpowiedz
You can thus only reference columns also referenced in the GROUP BY clause.


@msq: To nie jest do końca prawdziwe, nie trzeba pakować wszystkich kolumn które wybierasz do GROUP BY, SELECT a1, a2, max(b1) from a JOIN b ON (....) GROUP BY a1 może być całkowicie poprawne nawet poza MySQL
  • Odpowiedz
Mirki pytanie:

Jak zrobić kwerendę, żeby po wprowadzeniu przez użytkownika liczby dodawała się ona do pewnego rekordu z jakiejś tabeli ?

Nie wiem jak to lepiej wyjaśnić ;/

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

Mam zapytanie SQL (łącznie 4 join). Na dedykowanej aplikacji (klient w stylu SQL Management Studio) zapytanie wykonuje się ok. 70-80 sekund. Gdy puszczę to samo pytanie na Accessie (tabele połączone na ODBC) - oczywiście odpowiednio skonstruowane na głupi SQL Accessa - mieli niesamowicie długo, ponad 10 minut. Oczywiście wyniki są dokładnie te same.

Czy Access lub ODBC tak ma, czy powód jest jakiś inny, może kwestia konfiguracji? Zaznaczam, że zapytanie praktycznie jest
  • 5
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Cytryndor: kiedys na studiach bylem najlepszy w grupie. A byc moze na roku z Sqla. W pierwszej pracy - jeszcze na studiach jako jedno z pierwszych zadan dostalem raport oparty o sqla. Zrobilem zapytanie w 15 minut. Zadowolony z siebie pokazalem przelozonemu. Ten sie tylko usmiechnal i kazal je odpalic. Po paru godzinach przychodze do niego z info ze nie wiem o co biego bo zapytanie sie nie skonczylo. Tak
  • Odpowiedz
@Kamileeek: Fajnie by kurde było, żeby kiedyś tak przyszedł do pracy koleś, który by prostu umiał, a nie taki, który się będzie dopiero uczył. A co do zapytania - zgadzam się, zapytanie nie jest trywialne, a to dlatego, że model danych jest konkretnie spieprzony. Model danych ma odpowiadać najpierw na proste pytania: KTO CO ROBI ("ROBI" to opis relacji):

Operator jest

Klient
  • Odpowiedz
Wykończy mnie ten mysql. Próbuję zrobić jakikolwiek (już teraz) trigger, przepisuję przykłady z książek, przeklejam z internetu i cały czas bad syntax. Powie mi ktoś co tutaj jest źle?

CREATE TRIGGER rabat

BEFORE INSERT ON zamowienia

FOR
  • 10
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Onoki: hint: new. old.

@ to zmienna, do wartosci kolumn odwolujesz sie uzywajac new.nazwakolumny lub old.nazwakolumny

new. jest dostepne przy insertach i updaejtach (nowa wartosc
  • Odpowiedz
Mireczky, możecie pomóc z małym zapytaniem?

Mam bazę danych z przepisami. Zawiera następujące tabele:

przepisy (tutaj jest treśc przepisu)

przepisy
  • 8
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@JareqQ: select ps.skladnikID, su.skladnikID from przepisySkladniki ps left join skladnikiUzytkownika su on su.skladnikID = ps.skladnikID and su.userID = USERID where ps.przepisID = PRZEPISID and (su.skladnikID is null or su.ilosc < ps.ilosc);

jeżeli zwróci ci jakieś wiersze, to użytkownik nie ma wszystkich składników (konkretnie: w przepisie występują składniki, które nie mają odpowiedników w 'spiżarni' lub są w ilości mniejszej niż wymagana)
  • Odpowiedz
Mirki, ktoś ma szybki (nie z replace'a) sposób żeby wyciągnąć dane z kolumny, ale żeby usuneło pl znaki a zamieniło na zwykle. Np. Pękł na Pekl #sql #pytanie
  • 8
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Potrzebuje zbudować pewne zapytanie SQL i jest zbyt złożone jak na moją wiedzę. Upraszczając mam dwie tabele: FIRMY (firmaid, nazwa) oraz FORMULARZE(formid, firmaid) . formularzy jest dużo, a ja chcę zliczyć ile razy wystąpiła w nich jaka firma.

To co mam: "SELECT firma
id, count(*) as liczba FROM formularze GROUP BY firmaid ;" - teraz zlicza mi powtórzenia firmaid, a chciałbym wyświetlić nazwy, czyli zamiast firma_id żeby
  • 4
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

SELECT formularze.firmaid , firmy.firmanazwa , count(*) as liczba

FROM formularze JOIN firmy

ON (formularze.firmaid = firmy.firmaid) GROUP BY firma_nazwa ORDER BY liczba DESC;

nie wiem czy to eleganckie rozwiązanie ale działa
  • Odpowiedz
Planuję przepisać swój dogemonitor.com na Node.JS (i Socket.IO). Myślę, że większość potrzebnych danych będę trzymał w pamięci. Jednak potrzeba jest też archiwizowania wszystkich transakcji z giełd do bazy danych. Na chwilę obecną (3 tygodnie pracy serwisu) baza danych ma 650 tys wierszy i waży 100MB.

I rodzi się pytanie. Co może być do takich danych lepsze? Jakiś NoSQL?

#webdev #programowanie #bazydanych #sql
  • 14
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach