MySQL 数据统计查询

问题描述

现在我有一个表,列选项:ID,USER,DATE(2008-09-01)主键:USER和DATE。查询任务:计算在DATE在2008-09-01和2008-09-06期间,出现1天,2天,3天,...6天的数目我用的是MySQL数据库,想了好久,没想出来,不知道javaeye上的大虾遇到这种情况没有先谢了。问题补充:由于USER 和 DATE 是MYSQL 的关键字,现在把表参数改为USER-USR,DATE-DAYDATE表名:USER_TABLE例如:我要得到表中值出现一天以上的用户查询如下:select count(distinct usr) from user_table where daydate between '2008-09-01' and '2008-09-06'如果我要求出表中出现两天以上的用户呢?情况有如下:改用户在1,2好,2,3号,1,2,3号等等,就是排列组合查询语句是 ...?不知道我说清楚没有...问题补充:谢谢wxjiaaa的回答,虽说不是很准确,但给了我解决问题的思路现在把自己得到的答案放到这里,看能不能对一些人有帮助select count(usr) from (select usr ,count(usr) as usrNum from user_table where daydate >= '2008-09-01' and daydate <= '2008-09-06' group by usr) t where t.usrNum >=2该问题还可改进,比如可以一次性查1,2,3,...6天的结果,一条sql语句搞定,不过现在基本得到了结果,延伸应该没问题

解决方案

select usr from user_table where daydate > to_date('2008-09-01','yyyy-mm-dd') and daydate < to_date('2008-09-06','yyyy-mm-dd') and count(distinct usr) > 2;我这里没MYSQL库 所以以上只是凭空想出来的,仅供参考 要不你去试试?
解决方案二:
能否将问题描述得更详细些…… 貌似我对你的需求还不是很理解的样子

时间: 2024-11-10 05:41:07

MySQL 数据统计查询的相关文章

MySQL中几种数据统计查询的基本使用教程_Mysql

统计平均数SELECT AVG() FROM 语法用于从数据表中统计数据平均数. 语法: SELECT AVG(column) FROM tb_name 该 SQL 语法用于统计某一数值类型字段的平均数,AVG() 内不能是多个字段,字符串等类型虽然可以执行,但无意义. 例子: SELECT AVG(uid) FROM user 得到查询结果: 2.5000 当然在此统计 uid 的平均数是无实际生产意义的,只是为了演示 AVG() 语法的用法. 统计数据之和SELECT SUM() FROM

MySQL数据插入 查询 删除语句详解

MySQL数据插入 将数据插入到MySQL表,需要使用SQL INSERT INTO命令.可以将数据插入到MySQL表使用mysql>提示符下或使用任何脚本,如PHP. 语法: 下面是通用的SQL语法INSERT INTO命令来插入数据到MySQL表:  代码如下 复制代码 INSERT INTO table_name ( field1, field2,...fieldN )                        VALUES                        ( value

MYSQL中统计查询结果总行数的便捷方法省去count(*)

查看手册后发现SQL_CALC_FOUND_ROWS关键词的作用是在查询时统计满足过滤条件后的结果的总数(不受 Limit 的限制)具体使用如下,感兴趣的朋友可以学习下   MYSQL的关键词 : SQL_CALC_FOUND_ROWS 查看手册后发现此关键词的作用是在查询时统计满足过滤条件后的结果的总数(不受 Limit 的限制) 例如: 复制代码 代码如下: SELECT SQL_CALC_FOUND_ROWS tid FROM cdb_threads WHERE fid=14 LIMIT

MYSQL中统计查询结果总行数的便捷方法省去count(*)_Mysql

MYSQL的关键词 : SQL_CALC_FOUND_ROWS 查看手册后发现此关键词的作用是在查询时统计满足过滤条件后的结果的总数(不受 Limit 的限制) 例如: 复制代码 代码如下: SELECT SQL_CALC_FOUND_ROWS tid FROM cdb_threads WHERE fid=14 LIMIT 1,10; 假设满足条件的有1000条,这里返回10条. 立即使用 复制代码 代码如下: SELECT found_rows() AS rowcount; 则返回的 rowc

MySQL中统计数据时空的也显示

在工作中,有这样一个需求,就是需要统计24个小时的相关数据.有的朋友认为简单的一句group by就可以解决.其实不然,真正的统计,24个小时都得有数据的,不允许出现缺失的现象.其实这个有点像废话,处理结果集ResultSet也可以,但为了减少JAVA的负担和增强java代码的可读性,所以尽量用SQL语句,一次性把数据处理好. 表结构,有三个字段一看就明白 Sql代码 CREATE TABLE `vardata` ( `Id` int(11) NOT NULL AUTO_INCREMENT, `

mysql如何提高表的统计查询速度

本教程要来告诉各位关于mysql教程如何提高表的统计查询速度哦,我们这里讲到了使用中间表来提高数据表的查询与统计速度了. 对于数据库教程大的表,在进行统计查询时通常会比较慢的,并且还要考虑查询是否会对在线应用产生影响,通常这种情况下我们使用中间表可以提高查询统计速度,下面我们来统计counttable来统计客户每天消费的记录,如下. create tabel counttable( id,varchar(10),custi decimal(16,2),coutdate date,custip v

mysql-MySql 数据统计Update Select优化

问题描述 MySql 数据统计Update Select优化 请教下各位大神,mysq update数据优化遇到的问题是这样的.表a有2个字段,ready_countdownload_count表b是统计表,有typeid两个表的储存引擎都是MYISAM需要把表b的数据count(1) group by(type)之后update到表a的那两个字段中. 我现在的SQL是这样的:update a _t1set_t1.ready_count = (SELECT count(1) FROM b _t2

select-mysql数据表查询效率问题?

问题描述 mysql数据表查询效率问题? 比如一个表a有以下字段 a1(int自增主键),a2(varchar(10)),a3(datetime),a4(ntext) 把a表分成(由于考虑a4及占空间) afen表 a1(int自增主键),a2(varchar(10)),a3(datetime) afen1表 a1(int外键或加索引等),a4(ntext) 问以下两个查询 select a1,a2,a3 from a order by a3 desc; SELECT * from afen o

求助mysql查询语句,实现三张表数据统计

问题描述 求助mysql查询语句,实现三张表数据统计 temp_instore . temp_outstore . temp_stock三张表,以temp_stock表数据为主,统计与mate_id.sd_price两个字段值在另外两张表中相等的记录,主要查询出mate_id.sd_price.(sd_quantity + os_quantity - is_quantity) as quantity 就是sd_price与os_price.is_price比较,三者相等按上述进行加减运算,若os