现在有个需求,我想扫描下数据库表中字段信息(最大最小值、不为空行数),比如 user 表有 id,name,money 三个字段,实现 sql 如下:
select count(字段) from 表名 ;
select count(*) from 表名 where 字段 is not null ;
现在发现其他字段都没问题,只有 decimal 类型的字段,无法进行 count,因数据量很大,sum 等函数也不适合,问下大佬们有其他的方法吗?
1
basstk 2020-11-09 11:52:42 +08:00
个人认为数据库最好只存储数据,少参与计算.你可以先把值取出来,然后在后端里计算.
|
2
singerll OP @basstk #1 我这个不是业务需求,是历史库的统计需求,仅此一次,没必要写程序,而且数据量太大,程序也顶不住啊。
|
4
zhangysh1995 2020-11-09 15:21:09 +08:00
挺迷的,count(字段)是行数,数据类型应该没什么影响的。
|
5
singerll OP @zhangysh1995 #4 很奇怪,max 和 min 函数好像也不能用
|
7
zarte 2020-11-10 09:54:01 +08:00
建议检查下程序,或者发下实际的具体 sql 。你发现的问题点应该是错的。
|
8
zhangysh1995 2020-11-11 17:49:43 +08:00
@singerll 所以你这么问题有啥后续吗?有切入点了吗?
|
9
singerll OP @zhangysh1995 #8 放弃了,本来就是领导忽然想到的一次性统计需求,写个脚步太费时间就放弃了。。。
|