@BunkMoreland: Darmowe narzędzie pod SQL Server? Ha, haha, ha.
Wszystko
Wszystkie
Archiwum
Mirki potrzebuję jakiegoś ebooka do ogarnięcia baz danych, ktoś coś poleci?
#bazydanych #sql #mysql #postgresql
#bazydanych #sql #mysql #postgresql
Kojarzy ktoś w Oraclu jak zrobić takie coś:
Mamy tabelę z jedną hierarchiczną kolumną na zasadzie rodzic - dziecko z referencją do tej samej tabeli (czyli drzewko). I teraz pytanie: Jak napisać zapytanie które zaznacza rekord, który jest dzieckiem i dołącza do niego kolumny z jego roota(nie mylić z rodzicem). Podejrzewam, że jakaś kombinacja z joinem i connect by prior, ale głowa mi paruje i nie wiem.
#sql #oracle
Mamy tabelę z jedną hierarchiczną kolumną na zasadzie rodzic - dziecko z referencją do tej samej tabeli (czyli drzewko). I teraz pytanie: Jak napisać zapytanie które zaznacza rekord, który jest dzieckiem i dołącza do niego kolumny z jego roota(nie mylić z rodzicem). Podejrzewam, że jakaś kombinacja z joinem i connect by prior, ale głowa mi paruje i nie wiem.
#sql #oracle
@Tilannon: Ok bo jeszcze parent. To spróbuj tak:
SELECT PBF.ID CHILD_ID, PBF.ZLACZENIE_ID, PBF_PARENT.ID, CONNECT_BY_ROOT PBF.ID ROOT_ID
FROM TABELA PBF
LEFT OUTER JOIN TABELA PBF_PARENT ON
PBF_PARENT.ID = PBF.ZLACZENIE_ID
WHERE PBF.ZLACZENIE_ID IS NOT NULL
CONNECT BY PRIOR PBF.ID = PBF.ZLACZENIE_ID START WITH PBF.ID = 406@Legol: Dobra mam to!
Powinno być:
START WITH PBF.ZLACZENIEID IS NULL CONNECT BY PRIOR PBF.ID = PBF.ZLACZENIEID
To psuło, że nie było tego warunku na początku.
Powinno być:
START WITH PBF.ZLACZENIEID IS NULL CONNECT BY PRIOR PBF.ID = PBF.ZLACZENIEID
To psuło, że nie było tego warunku na początku.
konto usunięte via Android
- 1
Mam taki problem. Mam tabelę z logami, 100 insertów na sekundę (docelowo pewnie będzie z 10x więcej).
Tabela jest zdenormalizowana, mamy pola SourceID, CreatedDate, Value, UpperAllowedValue, LowerAllowedValue (dozwolone wartości są zmienne zależnie od godziny i dnia).
Jeśli przez pewien zbyt długi czas (zależny od danych w innej tabeli) utrzymuje się zbyt duża wartość, należy wstawić dane do tabeli AlertTable, wysłać maile. Jeśli stan został naprawiony, to oznaczyć rekord w AlertTable jako zakończony.
Tabela jest zdenormalizowana, mamy pola SourceID, CreatedDate, Value, UpperAllowedValue, LowerAllowedValue (dozwolone wartości są zmienne zależnie od godziny i dnia).
Jeśli przez pewien zbyt długi czas (zależny od danych w innej tabeli) utrzymuje się zbyt duża wartość, należy wstawić dane do tabeli AlertTable, wysłać maile. Jeśli stan został naprawiony, to oznaczyć rekord w AlertTable jako zakończony.
- 2
@Ginden: Tak własciwie to nie podałeś co jest problemem.
- 0
@Ginden: Ja bym odpalał co minute skrypt w cron/scheduler ktory sprawdzał i raportuje.
(Sprawdza w sensie np ostatnie 10 rekordow )
SP tez moze byc, ale skrypt daje wiekszą elastyczność (za jakiś czas możesz chcieć wysylać maila albo odpalać jakieś api)
Tabela alert jak napisales.
Sama tabele z logami mozesz co jakis czas czyscic.
(Sprawdza w sensie np ostatnie 10 rekordow )
SP tez moze byc, ale skrypt daje wiekszą elastyczność (za jakiś czas możesz chcieć wysylać maila albo odpalać jakieś api)
Tabela alert jak napisales.
Sama tabele z logami mozesz co jakis czas czyscic.
Co jest błędnego w przykładach ze znakiem zapytania?
Facetka wstawiła mi #!$%@?ę za to zadanie, jak JP2 do indeksu studenta.
#sql #zapytanie #bazydanych
Facetka wstawiła mi #!$%@?ę za to zadanie, jak JP2 do indeksu studenta.
#sql #zapytanie #bazydanych
- 3
@marek_antoniusz: w ostatnim jest niedomknięty ostatni string
- 3
@marek_antoniusz: a w przedostatnim pomiędzy wartościami "profession" i "location" nie ma przecinka.
- 1
Siema,
Mam taka tabelke z rozgrywkami
Macie pomysł na sprytne zliczenie wygranych,porażek,liczby meczy dla każdej drużyny ?
(pomińmy na razie kursory)
baza sql server 2012
#bazydanych #sql #sql
Mam taka tabelke z rozgrywkami
Macie pomysł na sprytne zliczenie wygranych,porażek,liczby meczy dla każdej drużyny ?
(pomińmy na razie kursory)
baza sql server 2012
#bazydanych #sql #sql
@Crisu:
select
TeamId
,sum(wygrana) as wygrane
,sum(przegrana) as przegrane
,sum(remis) as remisy
from
(
select
TeamId1 as TeamId
,case when Team1Score > Team2Score then 1 else 0 end wygrana
,case when Team1Score < Team2Score then 1 else 0 end przegrana
,case when Team1Score = Team2Score then 1 else 0 end remis
from tabela
union all
select
TeamId2 as TeamId
,case when Team1Score < Team2Score then 1 else 0 end wygrana
,case
select
TeamId
,sum(wygrana) as wygrane
,sum(przegrana) as przegrane
,sum(remis) as remisy
from
(
select
TeamId1 as TeamId
,case when Team1Score > Team2Score then 1 else 0 end wygrana
,case when Team1Score < Team2Score then 1 else 0 end przegrana
,case when Team1Score = Team2Score then 1 else 0 end remis
from tabela
union all
select
TeamId2 as TeamId
,case when Team1Score < Team2Score then 1 else 0 end wygrana
,case
#mssql #sql
zastanawiam sie nad upgrade ramu w serwerze gdzie mam mssql i chce zbadać o ile szybciej bedzie chodzil serwer po dorzuceniu
mirki - jest jakies ogolne zapytanie ktore pokazuje ilosc przetwarzanych zapytan przez instancje serwera na minute/godzine
tak aby mozna bylo sprawdzic predkosc przed upgrade i po ?
zastanawiam sie nad upgrade ramu w serwerze gdzie mam mssql i chce zbadać o ile szybciej bedzie chodzil serwer po dorzuceniu
mirki - jest jakies ogolne zapytanie ktore pokazuje ilosc przetwarzanych zapytan przez instancje serwera na minute/godzine
tak aby mozna bylo sprawdzic predkosc przed upgrade i po ?
@nocnyMark: Zrobić testy z http://www.hammerdb.com/
siema mirki z pod tagu #sql i #naukaprogramowania. Mam za zadanie
" Wyświetl numer zespołu wypłacającego miesięcznie swoim pracownikom najwięcej pieniędzy"
i mam użyć podzapytania. Napisałem je tak:
i zwróciło mi maksymalną płacę pracownika z danego zespołu, co zrobiłem źle? Bądźcie wyrozumiali bo dopiero się uczę.
" Wyświetl numer zespołu wypłacającego miesięcznie swoim pracownikom najwięcej pieniędzy"
i mam użyć podzapytania. Napisałem je tak:
SELECT SUM(placa_pod), id_zesp
from PRACOWNICY
WHERE PLACA_DOD IN
(SELECT MAX(PLACA_DOD)
FROM PRACOWNICY
group by ID_ZESP
)
GROUP BY ID_ZESPi zwróciło mi maksymalną płacę pracownika z danego zespołu, co zrobiłem źle? Bądźcie wyrozumiali bo dopiero się uczę.
- 0
@ugotowany_kamien:
To powinno zadziałać
SELECT idzesp FROM Pracownicy
GROUP BY idzesp
HAVING sum(placa) = (
SELECT max(sumazarobkow)
FROM (
SELECT sum(placa) as sumazarobkow
FROM pracownicy
GROUP BY id_zesp ) a )
To powinno zadziałać
SELECT idzesp FROM Pracownicy
GROUP BY idzesp
HAVING sum(placa) = (
SELECT max(sumazarobkow)
FROM (
SELECT sum(placa) as sumazarobkow
FROM pracownicy
GROUP BY id_zesp ) a )
@m-d-s: już mam ale dzięki
- 1
#programowanie #sql
Cześć,
Czy jest możliwość w postgresie nałożenie limitu na tabele ile może trzymać wierszy? Np. mam tabele users i chcę żeby można było w niej trzymać maksymalnie 5 userów?
Cześć,
Czy jest możliwość w postgresie nałożenie limitu na tabele ile może trzymać wierszy? Np. mam tabele users i chcę żeby można było w niej trzymać maksymalnie 5 userów?
- 3
Np. mam tabele users i chcę żeby można było w niej trzymać maksymalnie 5 userów?
@pulla: Jesteś pewien, że baza danych jest właściwym miejscem na takie mechanizmy?
#programowanie #bazydanych
Do przechowywania trojwymiarowej mapy składającej się z szescianow która będzie statyczna + komentatarzy dla tych szescianow lepiej #sql czy #mongodb ?
Do przechowywania trojwymiarowej mapy składającej się z szescianow która będzie statyczna + komentatarzy dla tych szescianow lepiej #sql czy #mongodb ?
@oficer-prowadzacy: nadal uważam że kalendarz wyszedł mi fajny :-) (btw po co ładne domki jak szałas z drabijkami też działa)
konto usunięte via Android
- 1
@wytrzzeszcz: Zrób plik binarny. Czytanie z pliku z określonym offsetem jest prawie darmowe i milion razy szybsze niż baza danych.
Pytanie będzie dotyczyło dwóch zapytań mających zwrócić teoretycznie ( ͡° ͜ʖ ͡°) taki sam wynik. Chodzi o to, które będzie bardziej wydajne, czyli które szybciej się wykona.
Załóżmy, że mamy zapytanie A, w skład którego wchodzi podzapytanie B oraz to zapytanie A czerpie jeszcze dane z jakiejś tabeli, nazwijmy ją C
Wersja 1:
Po klauzuli FROM zapytania głównego (A) wstawiamy podzapytanie B, które następnie łączymy JOINEM z tabelą
Załóżmy, że mamy zapytanie A, w skład którego wchodzi podzapytanie B oraz to zapytanie A czerpie jeszcze dane z jakiejś tabeli, nazwijmy ją C
Wersja 1:
Po klauzuli FROM zapytania głównego (A) wstawiamy podzapytanie B, które następnie łączymy JOINEM z tabelą
- 2
@TomaszWKS: Tak na szybko:
1) Po co ci DISTINCT jeśli masz GROUP BY?
2) Czy GROUP BY jest poprawny? Grupujesz tylko po jednej kolumnie a nie wiem jak sobie radzi Oracle z functional dependencies (jeśli działa to jest poprawny to nie MySQL)
3) Czy Oracle przekształca AND UPPER(p.polistatus) NOT IN 'Z' do p.polistatus NOT IN ('z','Z')?
Poza tym to wszystko zależy od wróżek i fazy księżyca ale generalnie im
1) Po co ci DISTINCT jeśli masz GROUP BY?
2) Czy GROUP BY jest poprawny? Grupujesz tylko po jednej kolumnie a nie wiem jak sobie radzi Oracle z functional dependencies (jeśli działa to jest poprawny to nie MySQL)
3) Czy Oracle przekształca AND UPPER(p.polistatus) NOT IN 'Z' do p.polistatus NOT IN ('z','Z')?
Poza tym to wszystko zależy od wróżek i fazy księżyca ale generalnie im
@plushy: Masz rację, pierwsze wykonuje się jako index only scan, drugie jako index scan.
W tym całkowicie się zgadzam, jeśli nie potrzebujemy funkcjonalności pomijania NULLi to zawsze powinno się używać
nadal pozostaje kwestia dobrych praktyk
W tym całkowicie się zgadzam, jeśli nie potrzebujemy funkcjonalności pomijania NULLi to zawsze powinno się używać
1 lub * (zależnie co jest już używane w projekcie).Mirki mam tabelę A i tabelę B, interesuje mnie taki join, aby stworzyć tzw. master view i dopełnić go null'ami.
O co chodzi:
tabela A{linia,qty,data}{"l1,5,2015-09-21", "l3,2,2015-09-21"}
tabela B{linia}{l1,l2,l3,l4,l5,l6}
Chodzi mi o taki select, który zestawi wszystkie linie od l1 do l6 (tabela B) z odpowiadającą linią tabeli A tam gdzie są dane - a resztę wypełni NULLami. selectowanie z warunkiem daty. Zadanie wydaje się proste, ale za cholerę nie mogę tego rozgryźć.
O co chodzi:
tabela A{linia,qty,data}{"l1,5,2015-09-21", "l3,2,2015-09-21"}
tabela B{linia}{l1,l2,l3,l4,l5,l6}
Chodzi mi o taki select, który zestawi wszystkie linie od l1 do l6 (tabela B) z odpowiadającą linią tabeli A tam gdzie są dane - a resztę wypełni NULLami. selectowanie z warunkiem daty. Zadanie wydaje się proste, ale za cholerę nie mogę tego rozgryźć.
@Gr3gorius: użyj LEFT OUTER JOIN-a
SELECT * FROM B LEFT OUTER JOIN A ON ...
SELECT * FROM B LEFT OUTER JOIN A ON ...
Dobra jestem idiotą, nie rozumiem dlaczego uparłem się żeby selectować z A zamiast B. LEFT OUTER JOIN'a próbowałem ale chyba na odwrót... Dzięki! ;)
- 1
Wrzucam też na mirko, może ktoś będzie mógł mi pomóc
http://forum.4programmers.net/Bazy_danych/258325-wyszukiwarka_z_wieloma_kryteriami
#reklamujemojpost #sql #bazydanych #wordpress
http://forum.4programmers.net/Bazy_danych/258325-wyszukiwarka_z_wieloma_kryteriami
#reklamujemojpost #sql #bazydanych #wordpress
konto usunięte via Android
- 1
Mireczki drogie, szukam jakichś dobrych poradników i inny materiałów związanych z nauką #sql Preferowałbym w języku polskim, ale z ang też dam radę. Nie ukrywam że fajnie jakby było w formie video, ponieważ podczas nauki lubię jak ktoś do mnie mówi i jakiś przykład. Przerobiłem od Zelenta na yt MySQL lecz szukam wincyj, bo tam znajdują się tylko 2 odcinki.
#naukaprogramowania #kiciochpyta
#naukaprogramowania #kiciochpyta
@ykuleczka: Na codecademy dodano niedawno kurs SQL.
- 1
#naukaprogramowania #sql
cześć, mam zadanie: wyświetl informacje o nazwisku, płacy podstawowej i nazwę etatu pracowników którzy zarabiają więcej niż średnia pensja ich etatu.
napisałem coś takiego
co ja zrobiłem źle?
cześć, mam zadanie: wyświetl informacje o nazwisku, płacy podstawowej i nazwę etatu pracowników którzy zarabiają więcej niż średnia pensja ich etatu.
napisałem coś takiego
SELECT a.nazwisko, a.placa_pod, a.etat from PRACOWNICY a inner join PRACOWNICY b on a.placa_pod>b.placa_pod where b.placa_pod in (select avg(placa_pod) from PRACOWNICY group by etat)co ja zrobiłem źle?
@ugotowany_kamien: chwile mi zajęło ogarnięcie coś ty zrobił, robisz innej joina na tej samej tabeli?
konto usunięte via Android
- 0
@ugotowany_kamien:
SELECT
A.*
FROM Pracownicy as A
INNER JOIN (
SELECT AVG() srednia, etat from Pracownicy B group by etat
) B ON a.etat = b.etat
WHERE A.pensja > B. srednia \* 1.5
SELECT
A.*
FROM Pracownicy as A
INNER JOIN (
SELECT AVG() srednia, etat from Pracownicy B group by etat
) B ON a.etat = b.etat
WHERE A.pensja > B. srednia \* 1.5
- 1
Hej,
Chcę zaimplementować TDE na istniejącej bazie danych (MS SQL 2008 R2). W sieci jest prosta instrukcja oraz szczegółowe tłumaczenie. Chcę by TDE dotyczyło tylko jednej z baz danych. Czy to możliwe? A może wszystkie bazy w tej bazie danych zostaną szyfrowane?
#sql #bazydanych
Chcę zaimplementować TDE na istniejącej bazie danych (MS SQL 2008 R2). W sieci jest prosta instrukcja oraz szczegółowe tłumaczenie. Chcę by TDE dotyczyło tylko jednej z baz danych. Czy to możliwe? A może wszystkie bazy w tej bazie danych zostaną szyfrowane?
#sql #bazydanych
Miraski, znowu potrzebne wsparcie. Sprawa pewnie banalna jak zwykle a dla mnie pewnie godziny kombinowania. Ale do rzeczy.. jest sobie skrypt (pewnikiem sqlowy ale pewien nie jestem) http://imgur.com/k5ucToA Pytanie jest takie: jaką składnie i gdzie trzeba dodać żeby skrypt wyświetlał mi np. tylko dane z roku 2015? Już się bawiłem selectem ale wyrzucało mi ciągle błędy. #sql #programowanie
- 1
Mirki, czy jest ktoś mi w stanie wyjaśnić, o co chodzi...
Zwraca mi zero rekordów - czyli po prostu takiego nie ma.
Przy próbie insertu z takimi ww. wartościami dostaję:
xD. Domyślam się, że pewnie chodzi o jakieś cache dla
select * from tabelka where a = 1994100 and b = 1161;Zwraca mi zero rekordów - czyli po prostu takiego nie ma.
tabelka ma primary key (a,b)Przy próbie insertu z takimi ww. wartościami dostaję:
ERROR: duplicate key value violates unique constraint "tabelka_pk"
DETAIL: Key (a, b)=(1994100, 1161) already exists.xD. Domyślam się, że pewnie chodzi o jakieś cache dla
Czy ktoś jest w stanie mi wytłumaczyć co forsuje w optymalizatorze hint MERGE?
inb4 DML MERGE != hint MERGE
@javaman - może ty wiesz?
#bazydanych #sql #oracle
inb4 DML MERGE != hint MERGE
@javaman - może ty wiesz?
#bazydanych #sql #oracle
- 1
@relik39: Sugerują spłaszczenie widoku (subquery flattening), które i tak by mogło nastąpić.
Widok zawsze jest traktowany jako zapytanie go generujące (mniej więcej).
Hinty mają na celu zmiejszenie liczby potencjalnych planów.
Widok zawsze jest traktowany jako zapytanie go generujące (mniej więcej).
Hinty mają na celu zmiejszenie liczby potencjalnych planów.
@plushy: ok, już doczytałem o co w tym chodzi, po prostu operując na samej nazwie widoku, bez jawnego podawania generującego go zapytania nie było dla mnie na pierwszy rzut oka oczywiste co się dzieje w tej transformacji. Thx za wskazówki.
Mirki z #bazydanych #sql #mysql potrzebuję małej pomocy od kogoś trochę bardziej obytego z zapytaniami.
Mam 2 tabelę - jedna, o nazwie page - przechowuje informacje o stronach, id, nazwa itd.
druga tabela przechowuje informację o poszczególnych wyświetleniach użytkowników - nazywa się view, posiada pola id, useragent, id strony(id z tabeli page) oraz datę.
Pytanie brzmi - jak za jednym zamachem otrzymać pełną informację o stronie ORAZ ilość jej wyświetleń ogólnie ORAZ
Mam 2 tabelę - jedna, o nazwie page - przechowuje informacje o stronach, id, nazwa itd.
druga tabela przechowuje informację o poszczególnych wyświetleniach użytkowników - nazywa się view, posiada pola id, useragent, id strony(id z tabeli page) oraz datę.
Pytanie brzmi - jak za jednym zamachem otrzymać pełną informację o stronie ORAZ ilość jej wyświetleń ogólnie ORAZ
konto usunięte via Android
- 1
@g500s: Tam powinno być ELSE NULL.
- 2
@g500s: No to zacznij od videotutoriali do SQL Servera lub manuala do Postgresa. Także use the index luke.
- 1
Mireczki/Mirkówny
Chcialbym stworzyc baze danych(chyba najlepsza bylaby lokalna), która bedzie trzymala podstawowe informacje o zawodniku (imie, nazwisko,...) a cala logika, dodawanie, edytowanie rekordow bedzie obslugiwane w Javie.
Problem jest taki, ze nie wiem jak taka baze stworzyc :P Czy jakis mily Mirek/Mirkówna z chwila wolnego czasu bylaby w stanie napisac mi jak po kolei ja stworzyc? Czy jest co w stylu wizarda, ktory po zaznaczaniu konkretnych opcji i wciskaniu [next] stworzy taka
Chcialbym stworzyc baze danych(chyba najlepsza bylaby lokalna), która bedzie trzymala podstawowe informacje o zawodniku (imie, nazwisko,...) a cala logika, dodawanie, edytowanie rekordow bedzie obslugiwane w Javie.
Problem jest taki, ze nie wiem jak taka baze stworzyc :P Czy jakis mily Mirek/Mirkówna z chwila wolnego czasu bylaby w stanie napisac mi jak po kolei ja stworzyc? Czy jest co w stylu wizarda, ktory po zaznaczaniu konkretnych opcji i wciskaniu [next] stworzy taka
- 2
- 1
@ryzael: Prawie każdy serwer baz danych posiada dwie opcje dodawania tabel do bazy, albo skryptem, albo graficznie, a jeśli nie ma takiej opcji wbudowanej to najprawdopodobniej istnieje do tego jakieś narzędzie, chociażby wspomniany MySQL Workbench, albo DB Designer (stare trochę, ale powinno Ci wystarczyć.
Zdecyduj się na jakiś konkretny SBD i wtedy pytaj, to Ci więcej ludzie powiedzą. To tak jak zapytać się "jak latać?" jak nie powiesz, czy chcesz zeppelinem
Zdecyduj się na jakiś konkretny SBD i wtedy pytaj, to Ci więcej ludzie powiedzą. To tak jak zapytać się "jak latać?" jak nie powiesz, czy chcesz zeppelinem
http://blog.pgaddict.com/posts/common-issues-with-planner-statistics - garść informacji o wnętrzu Postgresa, planisty zapytań i optymalizacji.
#postgresql #sql
#postgresql #sql
https://www.periscope.io/blog/postgres-recursive-cte.html - w #postgresql można rozwiązywać problem komiwojażera kodem deklaratywnym, a Wy co, nadal czekacie na JSON jako natywny typ danych w waszej bazie? ( ͡° ͜ʖ ͡°)
#gindenpoleca #sql
#gindenpoleca #sql
- 1
W jakimś tam języku proceduralnym którego nazwy nikt nie zna.
@plushy: Jeśli dialektów SQL z elementami proceduralnymi nie uznajesz za SQL, to wtedy rzeczywiście, nie ma Turing-kompletności bez recursive CTE.

















Przykładowy tekst na tej stronie:
Serdecznie zapraszamy dzieci, m??odzie?? szkoln�?, rodziców i nauczycieli do korzystania z naszych bezp??atnych us??ug.
Czytałem, żeby przez zapytaniem do bazy danych było coś takiego:
mysqlquery("SET CHARSET utf8");