› MySQL 5.5 Community Server
› MySQL 5.6 Community Server
› Percona Configuration Wizard
› XtraBackup 搭建主从复制
Great Sites on MySQL
› Percona
› MySQL Performance Blog
› Severalnines
推荐管理工具
› Sequel Pro
› phpMyAdmin
推荐书目
› MySQL Cookbook
MySQL 相关项目
› MariaDB
› Drizzle
参考文档
› http://mysql-python.sourceforge.net/MySQLdb.html
singerll
V2EX  ›  MySQL

mysql decimal 类型的统计的问题

  •  1
     
  •   singerll · Nov 9, 2020 · 4544 views
    This topic created in 2147 days ago, the information mentioned may be changed or developed.

    现在有个需求,我想扫描下数据库表中字段信息(最大最小值、不为空行数),比如 user 表有 id,name,money 三个字段,实现 sql 如下:

    select count(字段) from 表名 ;

    select count(*) from 表名 where 字段 is not null ;

    现在发现其他字段都没问题,只有 decimal 类型的字段,无法进行 count,因数据量很大,sum 等函数也不适合,问下大佬们有其他的方法吗?

    9 replies  •  2020-11-12 07:24:03 +08:00
    basstk
        1
    basstk  
       Nov 9, 2020
    个人认为数据库最好只存储数据,少参与计算.你可以先把值取出来,然后在后端里计算.
    singerll
        2
    singerll  
    OP
       Nov 9, 2020 via Android
    @basstk #1 我这个不是业务需求,是历史库的统计需求,仅此一次,没必要写程序,而且数据量太大,程序也顶不住啊。
    wysnylc
        3
    wysnylc  
       Nov 9, 2020
    @singerll #2 分批多次
    zhangysh1995
        4
    zhangysh1995  
       Nov 9, 2020
    挺迷的,count(字段)是行数,数据类型应该没什么影响的。
    singerll
        5
    singerll  
    OP
       Nov 9, 2020 via Android
    @zhangysh1995 #4 很奇怪,max 和 min 函数好像也不能用
    singerll
        6
    singerll  
    OP
       Nov 9, 2020 via Android
    @wysnylc #3 光磁盘 io 和网络带宽都能让这个程序跑两周。。。。
    zarte
        7
    zarte  
       Nov 10, 2020
    建议检查下程序,或者发下实际的具体 sql 。你发现的问题点应该是错的。
    zhangysh1995
        8
    zhangysh1995  
       Nov 11, 2020
    @singerll 所以你这么问题有啥后续吗?有切入点了吗?
    singerll
        9
    singerll  
    OP
       Nov 12, 2020 via Android
    @zhangysh1995 #8 放弃了,本来就是领导忽然想到的一次性统计需求,写个脚步太费时间就放弃了。。。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   878 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 19:50 · PVG 03:50 · LAX 12:50 · JFK 15:50
    ♥ Do have faith in what you're doing.