Autor | Zpráva | ||
---|---|---|---|
JardaB Profil |
#1 · Zasláno: 21. 1. 2018, 15:07:17
Zdravím, mám jednoduchou tabulku se sloupci id, id_klient, body kde se zapisují určité číselné hodnoty. Za den od každého klienta třeba 100 záznamů s různými body. Potřebuji napsat dotaz za použití SUM a vypsat za den klienty s nejvíce body, ale s omezením, že se počítá jen posledních např. 30 záznamů každého klienta.. Tzn nechci sumarizovat všechny hodnoty za den ale jen poslední. Poradí někdo? Mám dnes nějak vypnuto :D
|
||
Keeehi Profil |
#2 · Zasláno: 21. 1. 2018, 15:27:42
Myslím, že by tákladem mělo být Některé časteji řešené dotazy pro MySQL - FAQ » Nalezení posledních pěti článků z každé kategorie.
|
||
JardaB Profil |
#3 · Zasláno: 21. 1. 2018, 15:39:46
Díky mrknu na to..
|
||
JardaB Profil |
#4 · Zasláno: 21. 1. 2018, 18:47:42
Je mi to trapné, ale rád bych, kdyby mi s tím zápisem někdo pomohl.. pochopím to spíš, když to uvidím zapsané v tomto konkrétním příkladu... Předem moc děkuji...
|
||
Kajman Profil |
#5 · Zasláno: 21. 1. 2018, 19:36:30
Jsou zapisy, co se chapou dobře, ale jen pro některé databázové systémy. Co používáte a v jaké verzi?
|
||
JardaB Profil |
#6 · Zasláno: 21. 1. 2018, 20:05:22
Mysql 5.5.54
|
||
Kajman Profil |
Snad něco takového. Ale jestli jste nepochopil příklad, tak toto asi taky neopravíte.
SELECT t3.id_klient, Sum(body) soucet FROM (SELECT k.id_klient, (SELECT t2.id FROM tabulka t2 WHERE t2.id_klient = k.id_klient t2.datum >= '2018-01-18' AND t2.datum <= '2018-01-18 23:59:59' ORDER BY t2.id DESC LIMIT 1 OFFSET 29) id FROM (SELECT DISTINCT id_klient FROM tabulka t1 WHERE t1.datum >= '2018-01-18' AND t1.datum <= '2018-01-18 23:59:59' ) k ) hranice JOIN tabulka t3 ON t3.id_klient = hranice.id_klient AND t3.datum >= '2018-01-18' AND t3.datum <= '2018-01-18 23:59:59' AND t3.id >= Coalesce(hranice.id, t3.id) GROUP BY t3.id_klient S mariadb od verze 10.2 by to bylo jednodušší a pochopitelnější. |
||
JardaB Profil |
#8 · Zasláno: 22. 1. 2018, 08:26:58
Máte pravdu, čekal jsem že na vypíchnutí několika posledních záznamů od každého bude dotaz mnohem jednodušší. Asi to nepochopím ihned ale budu se snažit si to postupně rozebrat...
|
||
JardaB Profil |
#9 · Zasláno: 22. 1. 2018, 11:11:02
Dobrý den, tak jsem aplikoval na můj případ a musím smeknout klobouk.. opravdu to funguje naprosto přesně jak jsem chtěl.. naprosto zcela sem to nepochopil, ale implementace z tohoto příkladu již byla hračka... Mooooc děkuji
|
||
Časová prodleva: 5 let
|
0