快速查询问题

weixj2011ld 2011-05-03 09:53:04
如下表:
Tall Age
160 20
160 23
170 20
170 40
170 50
。。。


如果记录数很多的话,如何快速查找所有相同Tall的年纪的最大值和最小值及同以身高的记录个数?

我用如下方法,有没有更好的办法?更改表结构也可以.
mQuery.exec("select distinct Tall from tmptable");

while(mQuery.next())
{
mQuery1.exec("select age from tmptable order by age");
mQuery1.first();
minage=mQuery1.value(0).toInt();
mQuery1.last();
maxage=mQuery1.value(0).toInt();
count=mQuery.size();
}
...全文
138 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
rucypli 2011-05-04
  • 打赏
  • 举报
回复
select tall,max(age),min(age),count(*) 
from tb
group by tall
weixj2011ld 2011-05-04
  • 打赏
  • 举报
回复
这样查询出来的应该整个age中的最小(大)值吧。

我是想查询具有相同Tall的age的最小,最大和相同age的个数。

在上个表中,查询的结果应该是:
Tall min(age) max(age) count
160 20 23 2
170 20 50 3


当记录很多时,如何才能快速查询呢?
加油馒头 2011-05-03
  • 打赏
  • 举报
回复
如果记录数很多的话,如何快速查找所有相同Tall的年纪的最大值和最小值及同以身高的记录个数?


select tall,max(age),min(age),count(*) from tmptable order by Tall
ACMAIN_CHM 2011-05-03
  • 打赏
  • 举报
回复
[Quote]及同以身高的记录个数?[/Quote]看不懂这个汉语!!!

(不要高估你的汉语表达能力或者我的汉语理解能力)
建议你列出你的表结构,并提供测试数据以及基于这些测试数据的所对应正确结果。
参考一下这个贴子的提问方式http://topic.csdn.net/u/20091130/20/8343ee6a-417c-4c2d-9415-fa46604a00cf.html

1. 你的 create table xxx .. 语句
2. 你的 insert into xxx ... 语句
3. 结果是什么样,(并给以简单的算法描述)
4. 你用的数据库名称和版本(经常有人在MS SQL server版问 MySQL)

这样想帮你的人可以直接搭建和你相同的环境,并在给出方案前进行测试,避免文字描述理解上的误差。

版本:presto-server-0.214.tar软件版本 presto-cli-0.214-executableCentOS71、presto的起因 hadoop ---hdfs----MR(java)-----hivehive底层原理用MR,速度比较慢,公司hadoop集群主要集中于晚上到凌晨,平日工作时间负载不是很高。但在工作时间内,公司业务人员有实时查询的需求,现在主要借助于hive提供业务人员的查询。hive是基于MR类的SQL查询工具,他会输入的查询SQL解析为MapReduce,能极大的降低使用大数据门槛,让一般的业务人员可以直接准对大数据进行查询,但是有一个利弊,它的查询基于MR,会让人等待比较着急,等待的时间可能是几个小时或者一天。 spark基于内存提高改良的hive,sql,现在factbook在hive上面开发一套利器,准对hive可以通过sql语句快速查询,presto。2、Facebook为何开发Presto  Facebook的2011的数据仓库存储在少量大型hadoopfs集群,Hive是FaceBook在几年前专门为Hadoop打造的一款数据仓库工具,在以前,facebook的科学家和分析师一直靠hive进行数据分析.但hive使用MR作为底层计算框架,是专为批处理设计的,但是随着数据的不断增多,使用hive进行一个简单的数据查询可能要花费分钟或者几个小时,显然不能满足查询需求,FaceBooke也调研了其他比hive更快的工具,但是他们需要在功能有限的条件下做简单操作,以至于无法操作Facebook庞大的数据要求。2012年开始研究自己的框架--presto,每日可以超过1pb查询,而且速度比较快,faceBook声称Presto的性能比hive要好上10倍或者100倍,presto和hive都是facebook开发的 Presto是一个开源的分布式SQL查询引擎,适用于交互式查询,数据量支持GB到PB字节。Presto的设计和编写完全是为了解决Facebook这样规模的商业数据仓库交互式分析和处理速度的问题Presto可以做什么 Presto支持在线数据查询,包括Hive kafka Cassandra关系数据库以及专门数据存储,一条Presto查询可以将多个数据源进行合并,可以跨越整个组织进行分析。Presto以分析师的需求作为目标,他们期望相应速度小于1秒到几分钟,Presto要么在使用速度的快的昂贵的商业方案,提高内存,要么是消耗大量的硬件进行快速查询。(128G 64G)本套课程教给如何在企业环境中使用Presto技术。

56,687

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧