Resolved: about the queries
Select count(salary)
from salaries
where salary >= 100000
is similar to
Select count(*)
from salaries
where salary >= 100000
why the 2nd query also counts the records with NULL values when the condition WHERE salary>100000 is already applied? is this how the syntax works ?
id salary
1 90000
2 110000
3 NULL
4 120000
5 95000
considering this table above
the first query would give 3 as a result
and the 2nd query would give 4 as a result.
But why?
Hi Agrim!
Thanks for reaching out.
Actually, both of the queries you provided will give the same result under normal circumstances because the WHERE clause excludes any rows where salary is NULL before the counting occurs. NULL values do not meet any relational operator conditions (like >=, <, =, etc.), so they are inherently excluded by the WHERE clause.
For the table you provided, both queries will count only the rows where salary is at least 100,000:
- Row 2: salary = 110000
- Row 4: salary = 120000
Therefore, both queries should return 2, not 3 or 4, as NULL values and any salaries below 100,000 are excluded by the WHERE condition.
Hope this helps.
Best,
Tsvetelin
Hi, thank you for the reply!
yes I made a mistake, the answer should be 2.
