Pytania otagowane jako window-functions

Funkcja dzieląca zestaw wyników na partycje i obliczająca coś w tej partycji bez przewijania danych w tej partycji.

6
Krocząca suma zakresu dat za pomocą funkcji okna
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 …

2
MySQL i funkcje okna
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ę?


4
Używanie DISTINCT w funkcji okna z OVER
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 …


1
Suma bieżąca do poprzedniego wiersza
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 …

7
Grupowanie lub okno
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', …


1
Połącz dwie tabele zdarzeń w jedną oś czasu
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 …

2
Wybierz najdłuższą ciągłą sekwencję
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. …



1
Jak uzyskać agregację funkcji okna w Postgres?
Mam tabelę zawierającą dwie kolumny permutacji / kombinacji tablic liczb całkowitych oraz trzecią kolumnę zawierającą wartość, taką jak: CREATE TABLE foo ( perm integer[] NOT NULL, combo integer[] NOT NULL, value numeric NOT NULL DEFAULT 0 ); INSERT INTO foo VALUES ( '{3,1,2}', '{1,2,3}', '1.1400' ), ( '{3,1,2}', '{1,2,3}', '0' …


1
Porównanie wydajności między użyciem funkcji łączenia i okna w celu uzyskania wartości odprowadzeń i opóźnień
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 …

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.