I checked both oracle and impala and in both 1/3 is 0.333 and not 0.
I think that SQL writer is not a programmer and he  does not care about data 
type. He just want to get the correct results. BTW – it is not only constant, 
even expression like sum(case when <condition > then 1 else 0 end) / count(*) 
will get wrong results unless you will start implementing workarounds

From: John Hancock [mailto:jhancock1...@gmail.com]
Sent: Thursday, September 22, 2016 12:56 PM
To: user@phoenix.apache.org
Subject: Re: can I prevent rounding of a/b when a and b are integers

I think it is fairly standard in programming languages for / to mean integer 
division when the operands used are integers.  Therefore 1/3=0 is not a 
surprising result to me; other programming languages I have worked in give 
1/3=0.  However if one of the operands to / is a decimal, the result is also 
decimal, so 1.0/3 = 0.333... I don't think the behavior of / is incorrect as is.

On Thu, Sep 22, 2016 at 4:45 AM, Heather, James (ELS-LON) 
<james.heat...@elsevier.com<mailto:james.heat...@elsevier.com>> wrote:


On Thu, 2016-09-22 at 05:39 +0000, Bulvik, Noam wrote:

We have an app that let user write their own SQL

Um, do they write DROP TABLE statements in there?

________________________________

Elsevier Limited. Registered Office: The Boulevard, Langford Lane, Kidlington, 
Oxford, OX5 1GB, United Kingdom, Registration No. 1982084, Registered in 
England and Wales.


________________________________

PRIVILEGED AND CONFIDENTIAL
PLEASE NOTE: The information contained in this message is privileged and 
confidential, and is intended only for the use of the individual to whom it is 
addressed and others who have been specifically authorized to receive it. If 
you are not the intended recipient, you are hereby notified that any 
dissemination, distribution or copying of this communication is strictly 
prohibited. If you have received this communication in error, or if any 
problems occur with transmission, please contact sender. Thank you.

Reply via email to