FAQ |
Kalender |
2009-07-10, 15:59 | #1 | ||
|
|||
Medlem
|
Hej
Jag har försökt att hitta information online, men eftersom jag inte vet exakt vilka funktioner jag letar efter är det svårt. Jag skulle verkligen uppskatta om ni kunde peka mig i rätt riktning! 1) Jag har ett tabellinlägg för varje röst. Rösten kan vara antingen 1 eller 0. Det finns en kolumn som sparat, med CURDATE(), när rösten lades. Det finns en kolumn qid som beskriver på VAD rösten lades. Jag vill plocka ut de qid som fått flest röster den senaste månaden? 2) Man kan rösta 1 eller 0 där 1 är "ja" och 0 är "nej". Vad man röstat på beskrivs av kolumnen qid. Jag vill plocka ut de jämnaste frågorna, deras qid då, alltså plocka ut de qid som i den här tabellen har jämnast proportion t. ex. 49 % av rösterna är 1 och ORDER BY det. tack! |
||
Svara med citat |
2009-07-10, 16:13 | #2 | |||
|
||||
Har WN som tidsfördriv
|
det här funkar inte men något typ "SELECT gid, COUNT(röst) AS antal_röster FROM tabell WHERE sparat > DATE_SUB(now(), INTERVAL 1 MONTH) GROUP BY gid ORDER BY antal_röster DESC"
sen kanske något sånt här "SELECT gid, COUNT(röst) AS antal_röster, SUM(röst) AS antal_röster_på_ja, antal_röster_på_ja/antal_röster AS röst_resultat FROM tabell GROUP BY qid ORDER BY röst_resultat" vet dock inte hur du får den att börja på 50 och neråt.. är som märks ingen guru på mysql, men du har kanske något att leta vidare lite på.. |
|||
Svara med citat |
2009-07-10, 17:01 | #3 | ||
|
|||
Klarade millennium-buggen
|
With rollup ger dig delsummor när du groupar.
|
||
Svara med citat |
2009-07-10, 18:23 | #4 | ||
|
|||
Nykomling
|
HAVING, finns det in mySQL? Det använder man för att filtrera bort hela GROUPS när man kör GROUP BY, dvs längst ned i frågan.
|
||
Svara med citat |
2009-07-10, 18:30 | #5 | ||
|
|||
Supermoderator
|
Citat:
__________________
Full-stack developer, free for smaller assignments |
||
Svara med citat |
2009-07-10, 22:43 | #6 | ||
|
|||
Klarade millennium-buggen
|
Vi får ta det här steg för steg. Först så behöver du få ihop en summering av antalet röster på varje svarsalternativ specificerat per qid:
Kod:
SELECT QID, VOTE, COUNT(VOTE) AS Antal FROM Tabell3 GROUP BY QID, VOTE |
||
Svara med citat |
2009-07-11, 00:16 | #7 | ||
|
|||
Supermoderator
|
Fråga 1 har najk redan svarat på:
Kod:
SELECT qid, COUNT(vote) as votes FROM votestable WHERE votedate >= DATE_SUB(CURDATE(), INTERVAL 1 MONTH) GROUP BY qid ORDER BY votes DESC Kod:
SELECT qid, ABS(0.5 - AVG(vote)) AS middiff, 100 * SUM(vote) / COUNT(vote) AS yespercentage FROM test_votes GROUP BY qid ORDER BY middiff ASC
__________________
Full-stack developer, free for smaller assignments |
||
Svara med citat |
2009-07-11, 00:41 | #8 | ||
|
|||
Medlem
|
Det här fungerar grymt bra! Tack allihop som har hjälpt mig!
|
||
Svara med citat |
Svara |
|
|