pgMedlem sedan feb. 200235 inlägg Hej
Jag har en fråga angående SQL-syntax.
I en tabell så finns det svar på en fråga typ...
Sätt betyg på....bla bla
Svaren ligger som integer-värden på 1-5
Nu vill jag kunna visa svarsfördelningen på följande sätt.
Betyg 1: 76 st
Betyg 2: 11 st
Betyg 3: 109 st
Betyg 4: 22 st
Betyg 5: 45 st
Jag undrar om detta går att få fram med en SQL-fråga och hur den i så fall ska se ut. Som det är nu så får jag köra en fråga för varje värde...
"SELECT COUNT(*) AS nRS FROM Svar WHERE Varde=1"
"SELECT COUNT(*) AS nRS FROM Svar WHERE Varde=2"
osv. Men detta känns inte så smidigt.
Jag har också testat att köra UNION på dessa men kan inte få det att funka...
"SELECT COUNT(*) AS nRS1 FROM Svar WHERE Varde=1
UNION SELECT COUNT(*) AS nRS2 FROM Svar WHERE Varde=2 UNION ....osv." När jag försöker hämta nRS2 med ett recordset så finns inte värdet. Skumt!
Jag sitter och labbar på en MS-server och är tacksam för alla förslag.
GuffaMedlem sedan juni 2004533 inlägg Gruppera på värdet så får du ut hur många det finns av varje med count(*).
PalleMedlem sedan apr. 20003 174 inlägg Tråden flyttad från Webbutveckling - Övrigt.
mvh Palle
Moderator webForum
Engine^Medlem sedan dec. 20003 887 inlägg Som Guffa sa
SELECT Varde, COUNT(*) AS nRS
FROM Svar
GROUP BY Varde
ORDER BY Varde
pgMedlem sedan feb. 200235 inlägg Hur då?
Hej och tack för svaren.
Men jag förklara mig kanske inte så tydligt för jag vill även kunna få nRS=0 om alternativet saknar svar.
Om det t.ex finns följande i databasen
Betyg 1 - 8 st
Betyg 2 - 3 st
Betyg 3 - 7 st
Betyg 5 - 1 st
Då kommer jag att inte att kunna få fram
Betyg 1 - 8 st
Betyg 2 - 3 st
Betyg 3 - 7 st
Betyg 4 - 0 st <-
Betyg 5 - 1 st
Så egentligen skulle jag vilja kunna skriva villkor inne i count.....
SELECT
COUNT(select * from Svar where Varde=1) AS nRS1
, COUNT(select * from Svar where Varde=2) AS nRS2
, COUNT(select * from Svar where Varde=3) AS nRS3
o.s.v
men detta funkar inte. Så kom gärna med mer förslag tack.
/pg
@ndersMedlem sedan juni 200032 969 inlägg Ett alternativ:
SELECT COUNT(*) AS nRS1,
(SELECT COUNT(*) FROM Svar WHERE Varde = 2) AS nRS2,
(SELECT COUNT(*) FROM Svar WHERE Varde = 3) AS nRS3,
(SELECT COUNT(*) FROM Svar WHERE Varde = 4) AS nRS4,
(SELECT COUNT(*) FROM Svar WHERE Varde = 5) AS nRS5
FROM Svar WHERE Varde = 1
pgMedlem sedan feb. 200235 inlägg You´re the MAN!
Tackar och bockar. Exakt vad jag behövde. /P