Autor | Zpráva | ||
---|---|---|---|
Jiří Šťastný Profil |
#1 · Zasláno: 21. 3. 2018, 10:38:16
Ahoj všem,
chtěl bych požádat o pomoc. Mám tabulku, kde mám sloupec s typem DATETIME a v rámci delšího dotazu bych potřeboval získat ty výsledky, které mají rozptyl, alespoň jeden měsíc. Můžete mě alespoň nakopnout správným směrem? |
||
T-fon Profil |
#2 · Zasláno: 21. 3. 2018, 10:51:05
Nehledáš toto?
|
||
Kajman Profil |
#3 · Zasláno: 21. 3. 2018, 11:00:08
Spíš si myslím, že hledá něco jako
SELECT id_skupiny FROM tabulka GROUP BY id_skupiny HAVING TimestampDiff(MONTH, Min(datum), Max(datum)) >= 1 |
||
Jiří Šťastný Profil |
T-fon:
Nene, to jsem taky našel. Kajman: Ano, to vypadá jako to, co hledám. Ale mám s tím problém, protože mi příkaz vrací prázdný výsledek. Proč se tam používá ta agregace záznamů? Není mi jasná ta logika. Dokonce jako výsledek dostávám větší počet, než je záznamů v tabulce. ---- EDIT Už tu agregaci chápu, přesto se furt nemůžu dobrat výsledku, ale přesto děkuji za pomoc. |
||
Kajman Profil |
#5 · Zasláno: 21. 3. 2018, 12:19:44
Pokud máte jen jeden sloupec s datumem, tak mě nenapadá, jak jinak chcete hlídat rozptyl, než nad seskupenými daty.
„příkaz vrací prázdný výsledek“ „jako výsledek dostávám větší počet, než je záznamů v tabulce“ Přijde mi, že si to odporuje. Zkuste sem spíše poslat select, co zkoušíte. Případně nachystejte i vzorová data k dotazu na sqlfiddle.com. |
||
TomášK Profil |
#6 · Zasláno: 21. 3. 2018, 12:34:14
Dotaz není moc dobře formulovaný, rozptyl je terminus technicus a znamená něco jiného. Tipuju, že tazatal chce toto:
SELECT id FROM ( SELECT id, datum, LAG(datum) OVER(ORDER BY datum) AS prev_datum FROM tabulka ) t WHERE datum - prev_datum > INTERVAL '1 month' A tipuju, že to chce v MySQL, kam window funkce teprve dorazí, takže mu tenhle příklad nebude fungovat. |
||
Časová prodleva: 6 let
|
0