Hirdetés
- Luck Dragon: Asszociációs játék. :)
- gerner1
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- f(x)=exp(x): A laposföld elmebaj: Vissza a jövőbe!
- Meggyi001: Áram nélkül....méltóság nélkül.....
- Luck Dragon: Alza kuponok – aktuális kedvezmények, tippek és tapasztalatok (külön igényre)
- MasterDeeJay: Intel Optane M10: mire lehet használni?
- sziku69: Fűzzük össze a szavakat :)
- Lalikiraly: Commodore The C64, Ultimate
- Luck Dragon: Óraátállítás
Új hozzászólás Aktív témák
-
kojakhu
újonc
válasz
kw3v865
#4995
üzenetére
Hali, Lehet erre gondolsz. Addig egy entry egy csoport, amíg a timestamp gap nagyobb nem lesz mint 1 perc. Csoportokban meg lehet N db entry is amíg a gap nem túl nagy.
Ezt így lehet, pl.
Itt az SQLFiddle : [link]
Kód:
Setup:
create table t (dt timestamp);
-- group 1
insert into t values (current_timestamp - interval '10' second);
insert into t values (current_timestamp);
insert into t values (current_timestamp + interval '10' second);
-- group 2
insert into t values (current_timestamp + interval '120' second);
insert into t values (current_timestamp + interval '130' second);
-- group 3
insert into t values (current_timestamp + interval '220' second);
insert into t values (current_timestamp + interval '230' second);
Lekérdezés:
WITH
diffs AS (
SELECT dt
, LAG(dt) OVER (ORDER BY dt) AS prevdt
, LEAD(dt) OVER (ORDER BY dt) AS nextdt
, ROW_NUMBER() OVER (ORDER BY dt) AS rn
FROM t
) -- diffs
, group_gaps_and_flags AS (
SELECT v.*
, dt-prevdt AS prev_gap
, CASE WHEN prevdt IS NULL OR dt-prevdt > interval '1' minute
THEN 'Y'
END AS group_start_flag
, nextdt - dt AS next_gap
, CASE WHEN nextdt IS NULL OR nextdt-dt > interval '1' minute
THEN 'Y'
END AS group_end_flag
, CASE WHEN prevdt IS NULL OR dt-prevdt > interval '1' minute
THEN rn
END AS rn_if_start
FROM diffs AS v
) -- gaps_and_groups
, groups AS (
SELECT v.*
, MAX(rn_if_start) OVER (ORDER BY dt) -- ROWS BETWEEN UNBOUNDED_PRECEEDING AND CURRENT_ROW
AS my_group
FROM group_gaps_and_flags AS v
) -- groups
-- .
-- SELECT * FROM groups; -- separator for testing
-- .
SELECT my_group, MIN(dt), MAX(dt), COUNT(dt)
FROM groups
GROUP BY my_group
ORDER BY my_group
sorry, nem tudom még ezen a fórumon hogy kell kódot beszúrni jól...
Új hozzászólás Aktív témák
- Napelem
- Információbiztonság, kiberbiztonság, adatvédelem
- Samsung Galaxy A55 - új év, régi stratégia
- Kertészet, mezőgazdaság topik
- Google Pixel topik
- Home server / házi szerver építése
- Luck Dragon: Asszociációs játék. :)
- Audi, Cupra, Seat, Skoda, Volkswagen topik
- exHWSW - Értünk mindenhez IS
- Autós topik
- További aktív témák...
- JBL Bar 5.1 (Lecsatolható háttérsugárzós) Soundbar 510W, mélynyomóval
- Asus rog strix rtx 4080 oc
- Játékra vagy Munkára! Csere-Beszámítás! I7 3930K / Nvida GTX Titan B / 16GB DDR3 / 500GB SSD!
- Felsőkategóriás Gamer PC-Számítógép! Csere-Beszámítás! Z790 / I5 14600KF / 4070Ti Super / 32GB DDR5
- EVGA GeForce GTX 1080 Ti FTW3 HYBRID
- LENOVO ThinkBook 14s Yoga touch 360 - i5-1135G7, 16GB RAM, SSD, jó akku, számla, 6 hó gar
- iPhone 13 128GB Red-1 ÉV GARANCIA - Kártyafüggetlen, MS4593, 100% Akkumulátor
- Apple iPhone 14 Pro / 128GB / Kártyafüggetlen / 12Hó Garancia / Akku: 86%
- White GAMER PC! Ryzen 7900X3D / RX 7900 XT/ 32GB 6000MHz / 1TB Gen4 / 750w Gold! BeszámítOK
- Dell Precision 5750 17" UHD+ touch, i7 10850H, 16-64GB RAM, 6GB VGA, 512GB SSD, jó akku, számla, gar
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
