Muszę obliczyć sumę kroczącą w zakresie dat. Aby to zilustrować, korzystając z przykładowej bazy danych AdventureWorks , następująca hipotetyczna składnia zrobiłaby dokładnie to, czego potrzebuję: SELECT TH.ProductID, TH.TransactionDate, TH.ActualCost, RollingSum45 = SUM(TH.ActualCost) OVER ( PARTITION BY TH.ProductID ORDER BY TH.TransactionDate RANGE BETWEEN INTERVAL 45 DAY PRECEDING AND CURRENT ROW) FROM …
Wygląda na to, że MySQLnie obsługuje funkcji okna. Np. Prosty: COUNT(*) OVER() AS cntnie działa. Nie jestem pewien, czy dotyczy to również wersji komercyjnej (zakładam, że wersja społeczności ma ograniczony podzbiór). Jeśli nie, w jaki sposób można obejść tę brakującą funkcję?
W SQL Server 2008 używam RANK() OVER (PARTITION BY Col2 ORDER BY Col3 DESC)do zwracania zestawu danych za pomocą RANK. Ale mam setki rekordów dla każdej partycji, więc otrzymam wartości od rangi 1, 2, 3 ...... 999. Ale chcę tylko do 2 RANKsw każdym PARTITION. Przykład: ID Name Score Subject …
Próbuję migrować zapytanie z Oracle do SQL Server 2014. Oto moje zapytanie, które działa świetnie w Oracle: select count(distinct A) over (partition by B) / count(*) over() as A_B from MyTable Oto błąd, który wystąpił po próbie uruchomienia tego zapytania w programie SQL Server 2014. Use of DISTINCT is not …
Mam tabelę z takimi liczbami (status jest BEZPŁATNY lub PRZYPISANY) status numeru id_set ----------------------- 1 000001 PRZYPISANY 1 000002 ZA DARMO 1 000003 PRZYPISANE 1 000004 ZA DARMO 1 000005 ZA DARMO 1 000006 PRZYPISANY 1 000007 PRZYPISANY 1 000008 ZA DARMO 1 000009 ZA DARMO 1 000010 ZA DARMO …
Potrzebuję pomocy z funkcjami okienkowania. Wiem, że możesz obliczyć sumę w oknie i sumę bieżącą w oknie. Ale czy można obliczyć poprzednią sumę bieżącą, tj. Sumę bieżącą bez bieżącego wiersza? Zakładam, że będziesz musiał użyć argumentu ROWlub RANGE. Wiem, że istnieje CURRENT ROWopcja, ale potrzebowałbym CURRENT ROW - 1, która …
Mam sytuację, którą moim zdaniem można rozwiązać za pomocą funkcji okna, ale nie jestem pewien. Wyobraź sobie poniższą tabelę CREATE TABLE tmp ( date timestamp, id_type integer ) ; INSERT INTO tmp ( date, id_type ) VALUES ( '2017-01-10 07:19:21.0', 3 ), ( '2017-01-10 07:19:22.0', 3 ), ( '2017-01-10 07:19:23.1', …
Biorąc pod uwagę dwie tabele: CREATE TABLE foo (ts timestamp, foo text); CREATE TABLE bar (ts timestamp, bar text); Chciałbym napisać kwerendę, która zwraca wartości ts, fooi barktóry reprezentuje jednolity obraz najnowszych wartości. Innymi słowy, jeśli foozawiera: ts | foo -------- 1 | A 7 | B i barzawierał: ts …
Próbuję zbudować zapytanie w PostgreSQL 9.0, które pobiera najdłuższą sekwencję ciągłych wierszy dla określonej kolumny. Rozważ następującą tabelę: lap_id (serial), lap_no (int), car_type (enum), race_id (int FK) Gdzie lap_nojest unikalny dla każdego (race_id, car_type). Chciałbym z zapytania najdłuższy sekwencja dana race_ida car_type, więc nie zwracać int(lub długości), która jest największa. …
Rozważ tabelę, która rejestruje wizyty create table visits ( person varchar(10), ts timestamp, somevalue varchar(10) ) Rozważ te przykładowe dane (znacznik czasu uproszczony jako licznik) ts| person | somevalue ------------------------- 1 | bob |null 2 | bob |null 3 | jim |null 4 | bob | A 5 | bob …
Poniższe zapytanie wykonuje SUMokno nad tabelą magazynu kolumn 1500 total rows, z których każda ma wartość 0 lub 1, i przepełnia INTtyp danych. Dlaczego to się dzieje? SELECT a, p, s, v, m, n, SUM(CASE WHEN n IS NULL THEN 0 ELSE 1 END) OVER (PARTITION BY s, v, a …
Mam tabelę, która zawiera kolumnę wartości dziesiętnych, takich jak ta: id value size -- ----- ---- 1 100 .02 2 99 .38 3 98 .13 4 97 .35 5 96 .15 6 95 .57 7 94 .25 8 93 .15 To, co muszę osiągnąć, jest trochę trudne do opisania, więc …
Mam tabeli z wierszy 20m, a każdy wiersz ma 3 kolumny: time, id, i value. Dla każdego idi timeistnieje valuestatus. Chcę poznać wartości wyprzedzenia i opóźnienia określonego timedla określonego id. Użyłem dwóch metod, aby to osiągnąć. Jedną z metod jest łączenie, a drugą - funkcja okna lead / lag z …
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.