MySQL 里面的Where 和Having和Count 和distinct和Group By对比

mysql> select accid as uid,date(datetime) AS datetime from game.logLogin GROUP BY accid HAVING datetime='2013-8-20';
+---------+------------+
| uid     | datetime   |
+---------+------------+
| 1000010 | 2013-08-20 |
| 1000012 | 2013-08-20 |
+---------+------------+
2 rows in set (0.00 sec)

而实际的例子是

mysql> select accid as uid,date(datetime) AS datetime from game.logLogin HAVING datetime='2013-8-20';
+---------+------------+
| uid     | datetime   |
+---------+------------+
| 1000004 | 2013-08-20 |
| 1000004 | 2013-08-20 |
| 1000001 | 2013-08-20 |
| 1000000 | 2013-08-20 |
| 1000004 | 2013-08-20 |
| 1000004 | 2013-08-20 |
| 1000012 | 2013-08-20 |
| 1000010 | 2013-08-20 |
| 1000000 | 2013-08-20 |
| 1000002 | 2013-08-20 |
| 1000006 | 2013-08-20 |
| 1000003 | 2013-08-20 |
| 1000003 | 2013-08-20 |
| 1000012 | 2013-08-20 |
| 1000003 | 2013-08-20 |
|       0 | 2013-08-20 |
| 1000012 | 2013-08-20 |
+---------+------------+
17 rows in set (0.00 sec)

用大腿想都会不对

mysql> select distinct accid as uid from (select accid,date(datetime) AS datetime from game.logLogin HAVING datetime='2013-8-20') as t;
+---------+
| uid     |
+---------+
| 1000004 |
| 1000001 |
| 1000000 |
| 1000012 |
| 1000010 |
| 1000002 |
| 1000006 |
| 1000003 |
|       0 |
+---------+
9 rows in set (0.00 sec)

当然如何不用 HAVING 和 DISTINCT 和 COUNT 还有GROUP By 的话是可以找出记录的

mysql> select accountID as uid,date(signTime) AS signTime from platform.account HAVING signTime='2013-8-20';
+---------+------------+
| uid     | signTime   |
+---------+------------+
| 1000013 | 2013-08-20 |
| 1000014 | 2013-08-20 |
+---------+------------+
2 rows in set (0.00 sec)

mysql> select accountID as uid,date(signTime) AS signTime from platform.account HAVING signTime='2013-8-19';
+---------+------------+
| uid     | signTime   |
+---------+------------+
| 1000000 | 2013-08-19 |
| 1000001 | 2013-08-19 |
| 1000002 | 2013-08-19 |
| 1000003 | 2013-08-19 |
| 1000004 | 2013-08-19 |
| 1000005 | 2013-08-19 |
| 1000006 | 2013-08-19 |
| 1000007 | 2013-08-19 |
| 1000008 | 2013-08-19 |
| 1000009 | 2013-08-19 |
| 1000010 | 2013-08-19 |
| 1000011 | 2013-08-19 |
| 1000012 | 2013-08-19 |
+---------+------------+
13 rows in set (0.00 sec)

 

时间: 2024-09-21 01:26:24

MySQL 里面的Where 和Having和Count 和distinct和Group By对比的相关文章

MySQL里面的Replace 的用法和insert .. update 的用法

MySQL里面的Replace 的用法和insert .. update 的用法   drop table if exists t;   create table t(id int not null auto_increment primary key, name varchar(100));   create unique index idx_t on t(name);   replace into t (name) values('first'); -- 数据的id=1   select *

Mongodb聚合函数count、distinct、group如何实现数据聚合操作_MongoDB

 上篇文章给大家介绍了Mongodb中MapReduce实现数据聚合方法详解,我们提到过Mongodb中进行数据聚合操作的一种方式--MapReduce,但是在大多数日常使用过程中,我们并不需要使用MapReduce来进行操作.在这边文章中,我们就简单说说用自带的聚合函数进行数据聚合操作的实现. MongoDB除了基本的查询功能之外,还提供了强大的聚合功能.Mongodb中自带的基本聚合函数有三种:count.distinct和group.下面我们分别来讲述一下这三个基本聚合函数. (1)cou

MongoDB教程之聚合(count、distinct和group)_MongoDB

1. count: 复制代码 代码如下:     --在空集合中,count返回的数量为0.     > db.test.count()     0     --测试插入一个文档后count的返回值.     > db.test.insert({"test":1})     > db.test.count()     1     > db.test.insert({"test":2})     > db.test.count()    

MySQL执行计划里面的key_len

  以前看MySQL的执行计划,感觉内容有些简陋,平时分析主要就是看是否全表扫描,索引使用是否合理等.基本上也能分析出很多问题来,但是显然有时候会有些疑惑,那就是对于复合索引,多列值的情况下,到底启用了那些索引列,这个时候索引的使用情况就很值得琢磨琢磨了,我们得根据执行计划里面的key_len做一个重要的参考.    我们做一个简单的测试来说明.    CREATE TABLE `department` ( `DepartmentID` int(11) DEFAULT NULL, `Depart

appserv里面的mysql是不是会覆盖掉自己以前安装的mysql啊?

问题描述 appserv里面的mysql是不是会覆盖掉自己以前安装的mysql啊? appserv里面的mysql是不是会覆盖掉自己以前安装的mysql啊?如何导入以前Mysql的数据? 解决方案 一般不会,但是还是建议先把mysql中的数据备份下. 1.MySQL如果使用MyISAM存储引擎,数据库文件类型就包括.frm..MYD..MYI,默认存放位置是C:Documentsand SettingsAll UsersApplication DataMySQLMySQL Server 5.1d

lomboz eclipse 里面的data source explorer连接上mysql了,但看不到自建数据库和表?

问题描述 lombozeclipse里面的datasourceexplorer上连接了mysql.连接后我建了一个叫"bbs"的database,但是却看不到,只能看到叫"database"的database下的表.但是直接打开MySQL的界面,输入"showdatabases",却能看到"bbs"数据库.这是为什么?怎么解决呢?求问CSDN的高手们,谢谢!

关于.NET中WinForms里面的ListBox实现数据绑定的...

数据 关于.NET中WinForms里面的ListBox实现数据绑定的... -------------------------------------------------------------------------------- 在.NET中,WINDOW FORMS下面的LIST BOX控件在开发时,如果采用其本身的数据绑定,绑定完以后就不能更改ListBox的Items了.而实际开发中却经常会碰到要改变的情况,在这里我提供了一重方法.采用开发继承ListBox控件的自定义控件.然后

怎么删除循环里面的marker(asp.net)

问题描述 怎么删除循环里面的marker(asp.net) function play() { window.run = function () { var j = 0; var ico = icon_str[j]; var myIcon = new BMap.Icon(""../"" + ico + """" new BMap.Size(25 22) { imageOffset: new BMap.Size(0 0) //

jquery-JQuery 语句,easyui里面的,能不能给解释下什么意思? 函数如何调用的,谢谢了

问题描述 JQuery 语句,easyui里面的,能不能给解释下什么意思? 函数如何调用的,谢谢了 function saveUser(){ $('#fm').form('submit',{//当提交表单时候,会发生submit事件 url: url, onSubmit: function(){ return $(this).form('validate'); }, success: function(result){ var result = eval('('+result+')'); if