sql >> Database teknologi >  >> RDS >> Sqlserver

Sådan finder du løbende multiplikation

Din metode er ret fornuftig. God fangst på nullif() i sum() , i øvrigt. Selvom else klausul er kun beregnet efter then , komponenter af andet beregnes under aggregeringen -- så log(0) ville returnere en fejl.

Jeg tror, ​​der er nogle enklere måder at beregne tegnet på, såsom:

power(-1, sum(case when column1 < 0 then 1 else 0 end))

eller:

(case when sum(case when column1 < 0 then 1 else 0 end) % 2 = 0 then 1 else -1 end)

Men hvilken version der er "simpelere" er et spørgsmål om mening.



  1. Hvordan fortsætter jeg Pro med PuPHPet?

  2. Meget langsom opstart af Spring Boot-applikation

  3. Samlede annonceklik og visninger

  4. psql returnerer 'anonym' i resultatarray