这两个查询之间有什么区别。.我以为两个都提供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/

10-10 06:51