Autor Zpráva
ferda999
Profil
Zdravím, prosím o radu, mysql GROUP BY a ORDER BY

tabulka s ID,NAME,DATE
1 VASEK 2022-02-19 17:34:40
2 VASEK 2022-02-19 17:34:41
3 VASEK 2022-02-19 17:34:42
4 HONZA 2022-02-19 17:34:44
5 VASEK 2022-02-19 17:34:45

SELECT *,COUNT(*) AS c FROM table t GROUP BY name ORDER BY date ASC;
SELECT *,COUNT(*) AS c FROM table t GROUP BY name ORDER BY date DESC;
1 VASEK 2022-02-19 17:34:40 4
4 HONZA 2022-02-19 17:34:44 1

výsledek je v obou případech stejný, potřebuji, aby se vybral poslení prvek, tzn.: 5 VASEK 2022-02-19 17:34:45 4

Předem děkuji za případnou radu
blaaablaaa
Profil
Rozdelit na poddotaz/join. V jednom vybrat pocet a ve druhem nejnovejsi zaznam.
ferda999
Profil
blaaablaaa:
prosím bylo by možné tedy konkrétně, děkuji
Keeehi
Profil
SELECT
    COUNT(*) AS c,
    name,
    MAX(date) AS date
FROM
    table
GROUP BY
    name

Doporučil bych si zapnout ONLY_FULL_GROUP_BY. Tvůj dotaz není úplně správný, ale jelikož mysql je celkem benevolentní, nějaká data ti to vrátí. Ty pak nabydeš dojmu, že to je správně a asi ti přijde divné, proč tam ORDER BY nefunguje. Když si zapneš ONLY_FULL_GROUP_BY mód, bude mysql na tebe přísnější a nedovolí ti psát dotazy, u kterých není vše stoprocentně definováno.
ferda999
Profil
Keeehi:
Děkuji za radu, teď nevím, jestli se dobře orientuji, ale takto to jen GROUPu podstrčí poslední datum, chci aby to vrátilo
C,ID,NAME,DATE, MAX(DATE)
4 5 VASEK 2022-02-19 17:34:45 2022-02-19 17:34:45
ale takto to vrati
4 1 VASEK 2022-02-19 17:34:40 2022-02-19 17:34:45
Keeehi
Profil
Jakou máš verzi MySQL?
ferda999
Profil
DB je na wedosu
Keeehi
Profil
Skvělé, a co ta verze? Buď to, nebo mi řekněte, zda podporuje windowing funkce.
ferda999
Profil
Keeehi:
Typ serveru: MariaDB
Verze serveru: 10.1.19-MariaDB - Source distribution
Verze protokolu: 10
ferda999
Profil
Tak jsem to již vyřešil přes JOIN.
Moc děkuji za snahu.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0