这两个查询之间有什么区别。.我以为两个都提供same result
的查询可以检查此查询。
select kgfs,
count(case when loan_disbursement_date between '2015-04-01' and '2016-03-31' then urn else 0 end) as count
from all_cms_loans_dump_unique
where kgfs <> '' and
urn <> ''
group by kgfs;
select kgfs, count(urn)
from all_cms_loans_dump_unique
where loan_disbursement_date between '2016-04-01' and '2017-03-31' and
kgfs <> '' and
urn <> ''
group by kgfs;
最佳答案
基本区别在于,第一个版本将返回0
的计数,第二个版本将不返回。这些行将被过滤掉。
性能上也可能有所不同,因为第一个可能需要聚合的数据要多于第二个。另一方面,即使没有匹配的记录,也保证第一个返回kgfs
的所有值。
关于mysql - 用不同的方式写查询相同的方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39636838/