Czy istnieją jakieś praktyczne wskazówki lub reguły określające, kiedy przechowywać wartości zagregowane, a kiedy obliczać je w locie? Załóżmy na przykład, że mam widżety, które użytkownicy mogą oceniać (patrz schemat poniżej). Za każdym razem, gdy wyświetlam widżet, mogłem obliczyć średnią ocenę użytkowników z Ratingstabeli. Alternatywnie mógłbym zapisać średnią ocenę na …
Wydaje mi się, że pamiętam, że (w Oracle) istnieje różnica między wypowiadaniem select count(*) from any_tablea select count(any_non_null_column) from any_table. Jakie są różnice między tymi dwoma stwierdzeniami, jeśli takie istnieją?
Piszę schemat prostej bazy danych banku. Oto podstawowe specyfikacje: Baza danych będzie przechowywać transakcje z użytkownikiem i walutą. Każdy użytkownik ma jedno saldo na walutę, więc każde saldo jest po prostu sumą wszystkich transakcji wobec danego użytkownika i waluty. Saldo nie może być ujemne. Aplikacja bankowa będzie komunikować się ze …
Przed wersją Oracle 11.2 korzystałem z niestandardowej funkcji agregującej, aby połączyć kolumnę w wiersz. 11.2 Dodano LISTAGGfunkcję, więc staram się jej użyć. Mój problem polega na tym, że muszę wyeliminować duplikaty wyników i wydaje się, że nie jestem w stanie tego zrobić. Oto przykład. CREATE TABLE ListAggTest AS ( SELECT …
Chciałbym użyć wartości domyślnej dla kolumny, której należy użyć, jeśli nie zostaną zwrócone żadne wiersze. Czy jest to możliwe w PostgreSQL? Jak mogę to zrobić? Czy jest jakiś inny sposób na rozwiązanie tego problemu? Np. Coś takiego: SELECT MAX(post_id) AS max_id DEFAULT 0 FROM my_table WHERE org_id = 3 A …
Jestem w sytuacji, w której chcę uzyskać minimalną wartość z 6 kolumn. Znalazłem do tej pory trzy sposoby, aby to osiągnąć, ale mam obawy dotyczące wydajności tych metod i chciałbym wiedzieć, które z nich byłyby lepsze. Pierwszą metodą jest użycie dużej instrukcji . Oto przykład z 3 kolumnami, na podstawie …
W ANSI SQL standard określa (Rozdział 6.5, zestaw opis funkcji) następujące zachowanie zagregowanych funkcjami zbiór pusty Wynik: COUNT(...) = 0 AVG(...) = NULL MIN(...) = NULL MAX(...) = NULL SUM(...) = NULL Zwracanie wartości NULL dla AVG, MIN i MAX ma idealny sens, ponieważ średnia, minimalna i maksymalna pustego zestawu …
Czy w celu użycia HAVINGw zapytaniach SQL musi istnieć GROUP BYagregacja nazw kolumn? Czy są jakieś specjalne przypadki, w których można używać HAVINGbez GROUP BYzapytań SQL? Czy muszą one współistnieć w tym samym czasie?
Pierwsze słowa Możesz bezpiecznie zignorować poniższe sekcje (i włącznie) DOŁĄCZENIA: Rozpoczęcie, jeśli chcesz po prostu złamać kod. Tło i wyniki po prostu służyć jako kontekst. Proszę spojrzeć na historię edycji przed 06.10.2015, jeśli chcesz zobaczyć, jak początkowo wyglądał kod. Cel Ostatecznie chcę obliczyć interpolowane współrzędne GPS dla nadajnika ( Xlub …
Ponowne napisanie pełnego pytania Szukam funkcji agregującej First (). Tutaj znalazłem coś, co prawie działa: CREATE OR REPLACE FUNCTION public.first_agg ( anyelement, anyelement ) RETURNS anyelement LANGUAGE sql IMMUTABLE STRICT AS $$ SELECT $1; $$; -- And then wrap an aggregate around it CREATE AGGREGATE public.first ( sfunc = public.first_agg, …
W bazie danych transakcji obejmującej 1000 podmiotów w ciągu 18 miesięcy chciałbym uruchomić zapytanie w celu grupowania każdego możliwego 30-dniowego okresu entity_idz sumą ich kwot transakcji i COUNT ich transakcji w tym 30-dniowym okresie, oraz zwrócić dane w sposób, który mogę następnie wykonać zapytanie. Po wielu testach ten kod osiąga …
Próbuję połączyć wiele zakresów dat (moje obciążenie wynosi około 500, w większości przypadków 10), które mogą, ale nie muszą, pokrywać się z największymi możliwymi ciągłymi zakresami dat. Na przykład: Dane: CREATE TABLE test ( id SERIAL PRIMARY KEY NOT NULL, range DATERANGE ); INSERT INTO test (range) VALUES (DATERANGE('2015-01-01', '2015-01-05')), …
Tę zagadkę natrafiłem w komentarzach tutaj CREATE TABLE r (b INT); SELECT 1 FROM r HAVING 1=1; SQL Server i PostgreSQL zwracają 1 wiersz. MySQL i Oracle zwracają zero wierszy. Który jest poprawny? Czy oba są równie ważne?
Kiedy uruchamiam to polecenie za pomocą SUM() SELECT COUNT(*) AS [Records], SUM(t.Amount) AS [Total] FROM dbo.t1 AS t WHERE t.Id > 0 AND t.Id < 101; Dostaję, Arithmetic overflow error converting expression to data type int. Masz pojęcie, co jest tego przyczyną? Po prostu postępuję zgodnie z instrukcjami zawartymi w …
Mam dwa stoliki employeei phones. Pracownik może mieć od 0 do n numerów telefonów. Chcę wymienić nazwiska pracowników wraz z ich numerami telefonów. Korzystam z poniższego zapytania, które działa poprawnie. SELECT empname,array_agg(phonenumber) AS phonenumbers FROM employee LEFT OUTER JOIN phones ON employee.empid = phones.empid GROUP BY employee.empid Tabela pracowników może …
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.