ampyMedlem sedan feb. 20011 498 inlägg Jag har denna sql-sats:
sql = "SELECT fp.id, fp.id_trad, fp.user_id, fp.message, fp.datum, fp.smiley, ft.subject, ft.locked, ft.smiley, m.username, ft.rum, fi.signatur, fi.signatur_farg, fi.signatur_face, fi.bild, fi.bildlanka, m.forum, a.tecken" & _
" From forum_posts fp inner join forum_topics ft " & _
" on ft.id_trad = fp.id_trad " & _
" left outer join members m on m.id = fp.user_id " & _
" left outer join forum_inst fi on m.id = fi.user_id " & _
" left outer join affar a on m.id = a.medlemsid " & _
" WHERE fp.id_trad = "&id_trad&" order by fp.id asc"
Nu vill jag även lägga till denna kod i sql-satsen:
avg(char_length(fp.meddelande)) as averageLength
Hur ska jag göra det?
Den sista koden ska räkna ut antal tecken per inlägg i genomsnitt för alla inlägg.
Måste jag skapa två sql-satser för detta?
LarsGMedlem sedan dec. 200012 464 inlägg Det går att få fram i en fråga men det är nog effektivast att använda två frågor eftersom du då minimerar resultatmängden.
ampyMedlem sedan feb. 20011 498 inlägg Men om jag måste ha två frågor måste jag ha den ena i en for och det är väl inte så smart ha skapa ett recordset i en loop?
Då skapas det ju en massor.
LarsGMedlem sedan dec. 200012 464 inlägg Vill du inte ha genomsnittlig meddelandelängd för varje tråd? Din nuvarande fråga returnerar väl alla meddelanden och om du lade till denna uträkning så skulle du returnera samma värde för alla poster. Eller har jag missförstått allt,
ampyMedlem sedan feb. 20011 498 inlägg Jag vill ha genomsnittlig meddelandelängd för varje medlem.
LarsGMedlem sedan dec. 200012 464 inlägg I så fall har det väl ännu mindre med en viss tråd att göra.
Heter kolumnen message eller meddelande?
select avg(char_length(fp.message)),m.name
from forum_posts fp inner join members m
on fp.user_id = m.id
group by m.id
ampyMedlem sedan feb. 20011 498 inlägg Jag tänkte skriva ut medlemmens genomsnittliga meddelandelängd vid varje inlägg han/hon gör. Som antal inlägg här på wF. Det visas ju vid varje inlägg.
LarsGMedlem sedan dec. 200012 464 inlägg I så fall skulle du behöva använda skalära subselect vilket inte finns i Mysql. Om du vill kunna få ut allt i en fråga så måste du lagra den uppgiften i member-tabellen (och uppdatera efter varje inlägg.)
ampyMedlem sedan feb. 20011 498 inlägg Är det prestandakrävande?
Ungerfär hur mycket längre tid tar det att ladda sidan om man ska skriva fram 50 inlägg?
LarsGMedlem sedan dec. 200012 464 inlägg Menar du att göra en extra fråga för varje inlägg för att räkna ut genomsnittet? Det blir säkert märkbart.
ampyMedlem sedan feb. 20011 498 inlägg Ok, då struntar jag i den funktionen.