Dva po sobě jdoucí záznamy s odstupem větším než 0,7s – MySQL – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Dva po sobě jdoucí záznamy s odstupem větším než 0,7s – MySQL – Fórum – Programujte.comDva po sobě jdoucí záznamy s odstupem větším než 0,7s – MySQL – Fórum – Programujte.com

 

5. 5. 2016   #1
-
0
-

Ahoj,

mám tabulku ve které mám sloupec s časem na milisekundy. Záznamy jsou v tabulce chronologicky. Mezi časy u jednotlivých záznamů je různý rozestup. Potřebuji najít ty dvojce z po sobě následujících záznamů, u kterých je rozdíl mezi jejich časy větší než 0,7s. Jak na to?

hu

Nahlásit jako SPAM
IP: 195.178.67.–
peter
~ Anonymní uživatel
4014 příspěvků
5. 5. 2016   #2
-
0
-

SUBDATE, INTERVAL, TIMEDIFF?
SELECT SUBDATE('2008-01-02', INTERVAL 31 DAY);
https://dev.mysql.com/…nctions.html

Nevim, ale jestli to jde napsat pro dva nasledujici. Spis kazdy s kazdym. Pres LEFT JOIN 2 x tabulku s ruznym aliasem, treba.
Slo by to asi vytahnout id, cas. Seradit a pridat parametr (kde reknes treba sudy, lichy nebo cislovani 1,1, 2,2, 3,3...) a pak to nejak asi pres GROUP pospojovat a porovnat.

Nahlásit jako SPAM
IP: 2001:718:2601:26c:74d3:c9...–
P
~ Anonymní uživatel
212 příspěvků
5. 5. 2016   #3
-
0
-

   

SELECT
	  a.Cas
	, MAX(b.Cas)
FROM
	Casy a
	INNER JOIN Casy b ON b.Cas < a.Cas
GROUP BY a.Cas
HAVING
	a.Cas > DATE_ADD(MAX(b.Cas), INTERVAL '0.7' SECOND_MICROSECOND)

S MySQL nedelam, treba jde to porovnani casu udelat lip nez s funkci DATE_ADD()

Nahlásit jako SPAM
IP: 85.93.116.–
5. 5. 2016   #4
-
0
-

Edit: byl doplněn sloupec id int auto_increment, pomocí něj lze pak vybrat po sobě jdoucí záznamy

select p001log.id, p001log.cas, p001kop.id, p001kop.cas, p001kop.cas - p001log.cas as rozdil from p001log join (select id, cas from p001log where id > 1) as p001kop where p001kop.id = (p001log.id + 1) and p001kop.cas - p001log.cas > 0.7


tohle vypadá nadějně, úplně otestovaný to nemám

hu

Nahlásit jako SPAM
IP: 195.178.67.–
5. 5. 2016   #5
-
0
-

Odečítání časů má svá specifika. Předešlé si neporadilo s přechodem přes celou minutu.  Je třeba použít funkci TIMEDIFF(expr1, expr2)

select p001log.id, p001log.cas, p001kop.id, p001kop.cas, timediff(p001kop.cas, p001log.cas) as rozdil from p001log join (select id, cas from p001log where id > 1) as p001kop where p001kop.id = (p001log.id + 1) and timediff(p001kop.cas, p001log.cas) > 0.7


hu

Nahlásit jako SPAM
IP: 195.178.67.–
peter
~ Anonymní uživatel
4014 příspěvků
6. 5. 2016   #6
-
0
-

Jen to pridam formatovane pres
http://www.dpriver.com/…qlformat.htm
Osobne se snazim sql dotazy formatovat, sql-drivery si s tim uz dnes umi poradit.

SELECT p001log.id,
       p001log.cas,
       p001kop.id,
       p001kop.cas,
       Timediff(p001kop.cas, p001log.cas) AS rozdil
FROM   p001log
JOIN
       (
              SELECT id,
                     cas
              FROM   p001log
              WHERE  id > 1) AS p001kop
where  p001kop.id = (p001log.id + 1)
AND    timediff(p001kop.cas, p001log.cas) > 0.7
Nahlásit jako SPAM
IP: 2001:718:2601:26c:dc47:22...–
P
~ Anonymní uživatel
212 příspěvků
6. 5. 2016   #7
-
0
-
Nahlásit jako SPAM
IP: 85.93.116.–
6. 5. 2016   #8
-
0
-

#7 P
TIMEDIFF vrací rozdíl ve tvaru hh:mm:ss.milisekundy, pro moje účely to nijak nevadí. V podmínce akceptuje 0.7, asi by bylo vhodnější 00:00:00.7. Použití INTERVAL 0.7 SECOND nebo jen 0.7 SECOND vede k chybovému hlášení o chybné syntaxi.

hu

Nahlásit jako SPAM
IP: 195.178.67.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 14 hostů

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý