Anketa vyhodnocení výsledků – MySQL – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Anketa vyhodnocení výsledků – MySQL – Fórum – Programujte.comAnketa vyhodnocení výsledků – MySQL – Fórum – Programujte.com

 

tomkralik
~ Anonymní uživatel
3 příspěvky
24. 5. 2017   #1
-
0
-

Ahoj,

nějak nemohu přijít na to jak docílit správného výsledku při vyhodnocení anket.
Chtěl bych proto požádat o pomoc.

Mám tabulku s transakcemi ohledně hlasování v anketách.

id     |kdo    | anketa | anketapolozka | kdy
     3     |  1 |      1    |         2       |    2017-04-28 14:29:52
     4     |  1 |      1    |         2       |    2017-04-28 14:30:35
     5     |  1 |      2    |         3       |    2017-05-17 10:51:09
     6     |  1 |      2    |         3       |    2017-05-17 10:51:37
     7     |  1 |      2    |         4       |    2017-05-17 10:52:26
     9     |  1 |      1    |         1       |    2017-05-17 10:55:43
     11   |  1 |      2    |         4       |    2017-05-17 10:59:21
     12   |  1 |      2    |         4       |    2017-05-17 10:59:50
     2     |  2 |      2    |         4       |    2017-04-28 14:15:12
     8     |  2 |      2    |         4       |    2017-05-17 10:55:16
     10   |  2 |      1    |         2       |    2017-05-17 10:57:32

Každý s uživatelů může hlasovat vícekrát avšak se počítá vždy jen poslední hlas. Tedy nějaký MAX(kdy)

Rád bych získal výsledek v podobě

kdo, anketa, anketapolozka, kdy

tedy konkrétní výsledek

1,1,1,2017-05-17 10:55:43
2,1,2,2017-05-17 10:57:32
1,2,4,2017-05-17 10:59:50
1,2,4,2017-05-17 10:55:16

S tím, že sloupec KDY není až tak důležitý ve výsledku.

Bohužel jsem s tím zatím nepohnul.

Předem moc díky

Nahlásit jako SPAM
IP: 93.90.167.–
Titti0
Duch
24. 5. 2017   #2
-
0
-

muzes to jednoducho vyresit pomoci GROUP BY kde pridas "kdo, anketa" a do select max(kdy)
a dostanes presne co jsi chtel

nejak tak: 

select kdo, anketa, anketapolozka, max(kdy) 
from nazev_tabulky 
group by kdo, anketa
Nahlásit jako SPAM
IP: 85.93.124.–
tomkralik
~ Anonymní uživatel
3 příspěvky
24. 5. 2017   #3
-
0
-

#2 Titti
Toto nefunguje, to jsem samozřejmě zkoušel.


select kdo, anketa, anketapolozka, max(kdy) from transakce group by kdo, anketa


Chyba: Chyba v dotazu (1055): Expression #3 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'ankety.transakce.anketapolozka' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by

Díky

Nahlásit jako SPAM
IP: 93.90.167.–
Titti0
Duch
24. 5. 2017   #4
-
0
-

jojo to dela novy MySQL rychle reseni je vypnuti ONLY_FULL_GROUP_BY a pak to projede,

anebo muzes zkusit:

select * from nazev_tabulky x 
JOIN (select kdo, anketa,max(id) from nazev_tabulky group by kdo, anketa) y
ON x.id = y.id
Nahlásit jako SPAM
IP: 85.93.124.–
P
~ Anonymní uživatel
212 příspěvků
24. 5. 2017   #5
-
0
-

   

SELECT kdo, anketa, anketapolozka
FROM nazev_tabulky x
INNER JOIN (
	SELECT kdo, anketa, MAX(kdy) AS kdy
	FROM nazev_tabulky
	GROUP BY kdo, anketa
) y ON y.kdo = x.kdo AND y.anketa = x.anketa AND y.kdy = x.kdy
Nahlásit jako SPAM
IP: 212.47.6.–
tomkralik
~ Anonymní uživatel
3 příspěvky
24. 5. 2017   #6
-
0
-

#5 P
Super, toto je přesně to co jsem potřeboval.

Níže uvádím celé query dle výše uvedeného.

SELECT t.kdo, t.anketa, t.anketapolozka
FROM transakce t
INNER JOIN (
	SELECT kdo, anketa, MAX(kdy) AS kdy
	FROM transakce
	GROUP BY kdo, anketa
) y ON y.kdo = t.kdo AND y.anketa = t.anketa AND y.kdy = t.kdy
order by t.kdo,t.anketa


Funguje perfektně.

Moc díky

Nahlásit jako SPAM
IP: 93.90.167.–
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, 2 hosté

Podobná vlákna

PHP anketa s grafickým znázorněním výsledků — založil Ing. MuDr. Josef Novák

Vyhodnocení podmínky — založil Jisla

Vyhodnocení EKG — založil Kevil

Sloučení výsledků — založil beachboy

 

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