[ Príspevkov: 8 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Vypis poradia uzivatela z MySQL dtb

Registrovaný: 07.08.06
Prihlásený: 18.11.21
Príspevky: 947
Témy: 268 | 268
Bydlisko: Levice
NapísalOffline : 11.06.2018 10:18 | Vypis poradia uzivatela z MySQL dtb

Mam MySQL databazu, kde maju uzivatelia zaznaceny pocet bodov za urcity den. Jeden uzivatel moze mat viac dni aj viackrat skore za den. Priklad:

ID / datum / name / score
1 1.6.2018 janko@janko.sk 2
2 1.6.2018 janko@janko.sk 5
3 2.6.2018 ferko@ferko.sk 20
4 5.6.2018 janko@janko.sk 1
5 8.6.2018 ferko@ferko.sk 2

Ja potrebujem vediet poradie konkretneho uzivatela, teda ak sa prihlasi do systemu janko, tak ze na ktorom mieste sa umiestnil vzhladom k ostatnym - podla najvyssieho poctu score.

Keby bol kazdy uzivatel v tabulke len raz, tak samozrejme nie je problem to zoradit od najvyssieho skore.

Ale takto treba najprv spocitat vsetky skore pre KAZDEHO uzivatela a nejakym sposobom na zaklade toho zoradit podla poradia, a toto prave neviem ci vobec je mozne.


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 15.06.14
Prihlásený: 25.11.24
Príspevky: 17951
Témy: 143 | 143
Bydlisko: Bratislava
NapísalOffline : 11.06.2018 11:38 | Vypis poradia uzivatela z MySQL dtb

V subselecte spočítajte body užívateľov cez group by a count, následne z toho správ select najvyššieho skóre


_________________
ITX >>> ATX
Offline

Užívateľ
Užívateľ
Vypis poradia uzivatela z MySQL dtb

Registrovaný: 07.08.06
Prihlásený: 18.11.21
Príspevky: 947
Témy: 268 | 268
Bydlisko: Levice
Napísal autor témyOffline : 11.06.2018 14:21 | Vypis poradia uzivatela z MySQL dtb

diky Eliote :) no logicky ano, ale neviem ako to skombinovat. Skusal som:

Kód:
SELECT COUNT(*)
FROM(
SELECT score
FROM `tabulka`
WHERE name= 'janko@janko.sk'
)


ale toto mi len zisti pocet riadkov od daneho uzivatela, ja potrebujem spocitat skore pre kazdeho a na zaklade toho to zoradit.

Nasiel som nieco taketo, vecer to otestujem a pretransformujem na moju tabulku. Potreboval som vediet tu funkciu SUM, co vlastne spocita hodnoty.

Kód:
SELECT * FROM (
  SELECT s.*, @rank := @rank + 1 rank FROM (
    SELECT user_id, sum(points) TotalPoints FROM t
    GROUP BY user_id
  ) s, (SELECT @rank := 0) init
  ORDER BY TotalPoints DESC
) r
WHERE user_id = 3


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 15.06.14
Prihlásený: 25.11.24
Príspevky: 17951
Témy: 143 | 143
Bydlisko: Bratislava
NapísalOffline : 12.06.2018 0:44 | Vypis poradia uzivatela z MySQL dtb

to co robis, uz si skoro tam ale este nie stale nakonci :)

nieco taketo ti ku kazdemu uzivatelovi priradi poradie medzi ostatnymi (pozri rozdiel medzi rank a dense_rank, ktore z toho ti bude vyhodnejsie a lepsie pouzit):
Kód:
SELECT name, rank() OVER(ORDER BY points DESC)
FROM
(
   SELECT name, SUM(*) AS points
   FROM table
   GROUP BY name
)


_________________
ITX >>> ATX
Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 17.07.11
Prihlásený: 29.12.20
Príspevky: 1516
Témy: 3 | 3
NapísalOffline : 12.06.2018 10:29 | Vypis poradia uzivatela z MySQL dtb

To ako vážne subquery?

Kód:
select email, sum(points) as p
from table
group by email
order by p desc


_________________
Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám!
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 15.06.14
Prihlásený: 25.11.24
Príspevky: 17951
Témy: 143 | 143
Bydlisko: Bratislava
NapísalOffline : 12.06.2018 10:34 | Vypis poradia uzivatela z MySQL dtb

som predpokladal ze chce mat v tabulke aj stlpec s poradovym cislom kde sa dany pouzivatel nachadza :)


_________________
ITX >>> ATX
Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 17.07.11
Prihlásený: 29.12.20
Príspevky: 1516
Témy: 3 | 3
NapísalOffline : 12.06.2018 10:37 | Vypis poradia uzivatela z MySQL dtb

Poradové číslo netreba, ak stačí vedieť moje konkrétne poradie. Na jedno query si vytiahnem môj počet bodov (ten sa predpokladám niekde cachuje, nech sa nemusí stále počítať nanovo)
a potom stačí

Kód:
select email, sum(points) as p
from table
group by email
having sum(points) > 200

kde 200 je môj počet bodov. Počet riadkov, ktoré vráti tento select, je počet užívateľov, ktorí majú viac bodov než ja.

Typicky sa potom leaderboardy robia tak, že na jeden select vytiahnem prvú desiatku (tie viem očíslovať aj v php) a v druhom selecte moje poradové číslo. Zbytočne budem ťahať všetkých užívateľov, keď ma zaujíma jeden, alebo 10.
A ak chcem očíslovať všetkých, tak to viem tiež robiť až pri zobrazení, zbytočne si tým nemusím spomalovať select.


_________________
Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám!
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 15.06.14
Prihlásený: 25.11.24
Príspevky: 17951
Témy: 143 | 143
Bydlisko: Bratislava
NapísalOffline : 12.06.2018 10:53 | Vypis poradia uzivatela z MySQL dtb

tak zase nieco nove pre mna :) vdaka za objasnenie


_________________
ITX >>> ATX
 [ Príspevkov: 8 ] 


Vypis poradia uzivatela z MySQL dtb



Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy.

vypis z dtb - 2 moznosti

v PHP, ASP

2

506

27.09.2016 10:37

neopagan

V tomto fóre nie sú ďalšie neprečítané témy.

MySQL vypis

v Databázy

1

344

07.01.2014 15:34

kudzo3

V tomto fóre nie sú ďalšie neprečítané témy.

výpis z mysql

v PHP, ASP

13

1251

09.12.2009 19:40

M1rcO_o

V tomto fóre nie sú ďalšie neprečítané témy.

MYSQL vypis podmienky

v Databázy

6

827

07.09.2010 20:15

camo

V tomto fóre nie sú ďalšie neprečítané témy.

Vypis poctu z MySQL

v PHP, ASP

11

693

30.01.2009 12:39

jtomcik

V tomto fóre nie sú ďalšie neprečítané témy.

Výpis údajov z mysql tabuľky

v PHP, ASP

29

1620

05.12.2008 9:44

stenley

V tomto fóre nie sú ďalšie neprečítané témy.

Výpis podľa stĺpca z MySQL

v PHP, ASP

6

420

04.11.2012 21:14

xxx9955

V tomto fóre nie sú ďalšie neprečítané témy.

Vypis hlavicky mysql v php

v PHP, ASP

2

448

25.04.2010 9:11

Bauglir

V tomto fóre nie sú ďalšie neprečítané témy.

vypis s mysql tabulky na stranku

v PHP, ASP

5

828

11.01.2009 15:16

dadmtb

V tomto fóre nie sú ďalšie neprečítané témy.

vypis mysql DB - nevidim v skripte chybu

v PHP, ASP

3

590

02.12.2007 23:17

miro277

V tomto fóre nie sú ďalšie neprečítané témy.

Vypis z MySQL a spracovanie php scriptu v tabulke

[ Choď na stránku:Choď na stránku: 1, 2 ]

v PHP, ASP

39

2658

21.03.2010 1:22

JanoF

V tomto fóre nie sú ďalšie neprečítané témy.

MySQL výpis "embed" kódu

v PHP, ASP

2

490

20.05.2010 15:16

MAREJ

V tomto fóre nie sú ďalšie neprečítané témy.

optimalizacia vypisu z dtb

v PHP, ASP

12

700

21.09.2009 23:08

kmsa

V tomto fóre nie sú ďalšie neprečítané témy.

nahodny vyber z dtb

v Databázy

5

751

01.06.2009 12:02

walther

V tomto fóre nie sú ďalšie neprečítané témy.

porovnanie veku v dtb

v Databázy

0

311

26.09.2014 14:18

neopagan

V tomto fóre nie sú ďalšie neprečítané témy.

Zistenie poradia prvku

v Databázy

10

894

24.10.2008 20:44

final



© 2005 - 2024 PCforum, edited by JanoF