Mireczki z #webdev mam pytanie, przenoszę stronę z testowego serwera na docelowy już i mam problem z bazą danych SQL :/ Dałem eksport w UTF-8, wszystko w UTF-8 i coś takiego pokazuję się na serwerze tym na którego przenoszę.

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");
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
@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
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.
@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.
@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
#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 ?
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:

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_ZESP

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ę.
@ugotowany_kamien:

To powinno zadziałać

SELECT idzesp FROM Pracownicy
GROUP BY id
zesp
HAVING sum(placa) = (
SELECT max(sumazarobkow)
FROM (
SELECT sum(placa) as suma
zarobkow
FROM pracownicy
GROUP BY id_zesp ) a )
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ą
@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
@plushy: Masz rację, pierwsze wykonuje się jako index only scan, drugie jako index scan.

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źć.
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! ;)
#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

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?
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
Mirki, czy jest ktoś mi w stanie wyjaśnić, o co chodzi...

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
@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.
@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
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
@ryzael: w mysql workbench masz graficzny edytor do modelowania bazy(przeciąganie tabelek, łączenie relacjami itp), później wystarczy wybrać forward engineer i wygeneruje Ci na podstawie tego sqla do utworzenia schematu
@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
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.