webForumDet fria alternativet

räkna ut andel

Databaser & SQL

1 svar · 241 visningar · startad av daniel_ra

Medlem sedan jan. 2002381 inlägg
Frågan#1

Provar att göra såhär:

SUM(CASE WHEN i.ID is not NULL then 1 else 0 end) / count(*) as andel

men eftersom divisonen alltid her ett tal under 1 så blir andelen alltid 0

jag får korrekta värden då jag gör
SUM(CASE WHEN i.ID is not NULL then 1 else 0 end) BLIR 298
count(*) BLIR 1212

om jag dividerar med 100.0 så går det bra men count(*) blir ju inte ett decimaltal så jag lyckas inte få till det. Hur ska jag göra för att lösa detta.

Medlem sedan jan. 2002381 inlägg
#2

löste det

cast(count(*) as decimal) så gör den om den till ett decimaltal och allt funkat fint

265 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)
128 ms — ändringar (db)