Mysql注意的点

2020-02-27  本文已影响0人  番茄酱的汪

一、字符串还是数字?

select max(a+0)

日期的可以用转换函数:STR_TO_DATE(a,'%y%m%d')

二、现聚合再计数:

select goods_category,count(distinct cos_name) from table

因为用distinct非常的慢,全表都需要去重,针对一个很庞大的数据库是很不友好的

Select goods_category,count(1) as a from (select goods_category,cos_name from tablegroup by cos_name,goods_category)
group by goods_category

首先先用子表聚合一次,你需要的两个字段:goods_category、cos_name,这样就已经筛选出来不重复的项;
然后再单独聚合一次,用count(1)去计数需要count的值。
这里count(1)包括了忽略所有列,用1代表代码行,在统计结果的时候,不会忽略列值为NULL
关于count(1):https://blog.csdn.net/haijiege/article/details/85006780

上一篇 下一篇

猜你喜欢

热点阅读