Thinkphp 下 MySQL group by 接count 获得条数方法

比如 下面的语句 , 用于分组统计

select count(*) from es_diabetes where uid=43658 GROUP BY uniques

结果明显不是我们想要得,为什么呢,因为这是个group up分组

改为下面的,先去重 , 再分组

select count(DISTINCT uniques ) from es_diabetes where uid=43658

group by 是分组,不能直接用于 count 统计

但是select还是可以的

或者 可以使用 子查询

SELECT count(*) AS c FROM(SELECT count(*) FROM es_diabetes where uid =43658 GROUP BY uniques ) as s

结果还是一样的

时间: 2024-10-14 03:03:51

Thinkphp 下 MySQL group by 接count 获得条数方法的相关文章

mysql获取group by的总记录行数方法

mysql获取group by内部可以获取到某字段的记录分组统计总数,而无法统计出分组的记录数. mysql的SQL_CALC_FOUND_ROWS 使用 获取查询的行数 在很多分页的程序中都这样写: 代码如下 复制代码 SELECT COUNT(*) from `table` WHERE ......; 查出符合条件的记录总数 代码如下 复制代码 SELECT * FROM `table` WHERE ...... limit M,N; 查询当页要显示的数据 这样的语句可以改成: 代码如下 复

MySQL 分组之后如何统计记录条数 gourp by 之后的 count()

SELECT count(*) FROM 表名 WHERE 条件 // 这样查出来的是总记录条 SELECT count(*) FROM 表名 WHERE 条件 GROUP BY id //这样统计的会是每组的记录条数. 如何获得 第二个sql语句的总记录条数? 则是,如下: select count(*) from(SELECT count(*) FROM 表名 WHERE 条件 GROUP BY id ) a ; 注意: 子查询方式,MySQL中子结果集必须使用别名,而Oracle中不需要特

MySQL 分组后,统计记录条数

分组后,统计记录条数: SELECT num,count(*) AS counts from test_a GROUP BY num; 查询结果如下: 对num去重后的数量的统计: SELECT count(t.counts) FROM ( SELECT num,count(*) AS counts from test_a GROUP BY num ) AS t; SELECT count(DISTINCT num) AS count FROM test_a; 它俩结果一样,都是5:只是一个是子

命令行下<mysql>不是内部或外部命令排查方法

首先确定你没有更改过MySQL的安装目录.如果你进行过改名或者更改了你的路径,那么要在相应的配置文件中更改你的你路径.找到C:\Windows\my.ini文件,更改你配置的文件路径,改成你修改后的路径.  修改服务对应的路径. 如果你的MySQL路径更改,那么MySQL的服务自然就无法启动了,按下win+R键,输入services.msc 查看路径是否正确.  如果不正确打开注册列表进行更改,按下win+R 键,输入regedit,打开注册列表. 找到: HKEY_LOCAL_MACHINE\

ubuntu 下mysql 不显示当前的数据库名解决方法

百度了下,找到解决方法了: 只要在命令行加上个参数:--prompt="\u(\d) >"即可. 如果还要加上时间的话,加--prompt="\u(\d) \R:\m:\s >" 即可 例如:mysql -uroot -p1234 --prompt="\u(\d)>" 这样 如果要长期生效的话,直接在my.cnf配置文件mysql段里面加上如下: [mysql] default-character-set = utf8 prom

ubuntu下mysql连接(转载)

ubuntu下mysql默认只能从本地连接的解决方法 sudo gedit /etc/mysql/my.cnf 修改一个字段 bind-address = 127.0.0.1 —> bind-address=xxx.xxx.xxx.xxx(你的IP) (From: http://hi.baidu.com/vincent_hcl) 一.连接MYSQL. 格式: mysql -h主机地址 -u用户名 -p用户密码 1.例1:连接到本机上的MYSQL. 首先在打开DOS窗口,然后进入目录 mysqlb

远程访问ubuntu下mysql的问题

ubuntu下mysql不能用IP地址远程访问的问题解决 方法1: 1.mysql>grant all privileges on *.* to 'root'@'%' identified by 'root'; (%) 表示所有ip 第1个root表示账户 第2个root表示密码 2.mysql>flush privileges; 3.停止并重启mysql服务. 停止命令: service mysql stop 启动命令: service mysql start 查看状态: service m

mongodb使用aggregate、group、match实现mysql中的having(count(1)>1)的功能

关系型数据库中分组去重一般都是group by - having(count(1)>1)-赛选出来重复的记录组,然后一条sql搞定,但是在mongodb里面,没有这么方便了,需要自己写脚本来实现,可以通过aggregate.group.match来操作处理. 1,准备录入测试数据 db.stu.insert({cid:1,age:14,name:'gom1'}); db.stu.insert({cid:1,age:12,name:'jack2'}); db.stu.insert({cid:2,a

mysql group by 用法解析(详细)

在使用mysql时,有时需要查询出某个字段不重复的记录,虽然mysql提供 有distinct这个关键字来过滤掉多余的重复记录只保留一条,但往往只用它来返回不重复记录的条数,而不是用它来返回不重记录的所有值.其原因是 distinct只能返回它的目标字段,而无法返回其它字段,这个问题让我困扰了很久,用distinct不能解决的话,我只有用二重循环查询来解决,而 这样对于一个数据量非常大的站来说,无疑是会直接影响到效率的.所以我花了很多时间来研究这个问题,网上也查不到解决方案 下面先来看看例子: