`

排序取最大值使用ORDER BY 值 DESC 还是 MAX(值)

 
阅读更多

今天优化一个方法发现有一条HQL查询数据使用ORDER BY 取最大的一个数据,如下HQL:

final String sql = "FROM 表 WHERE imei='"+ imei + "' ORDER BY cell_time DESC";

 如果表中数据小滴话可能感觉不到慢,可是当数据上了百万级以上,那这里就会慢了。当然后我们早已对字段" imei "建立了索引,如下测试时间:

执行时间========= 58(毫秒)

我换种写法,当然后这里就不能用HQL了,只能SQL,如下:

"select max(a.cell_time)  from t_wom_heart_information a where a.imei = '"+imei+"'"

 

执行时间========= 12(毫秒)

 

注意:这里不能使用Hibernate的缓存机制,如果使用Hibernate的“setCacheable(true)”那Hibernate会帮我去转对象所以这里可能会报Exception。

分享到:
评论

相关推荐

    PHP100视频教程 9:数据库中的常用SQL语句.rar

     MAX(*) 最大值函数  MIN (*) 最小值函数  AVG(*) 平均值函数  SUM(*) 累计值函数(∑) 3、Insert 插入语句 insert into 表名 (字段…,…) values(值…,…) insert into 表名 values(值…,…) 插入时须...

    数据库MySQL基础知识点3

    排序 order by 默认升序asc、降序desc 聚合函数 计算总行数:count(*)  找出该字段的最大值:max(字段) 找出该字段的最小值:min(字段)  对该字段求和:sum(字段)  对该字段求平均值:avg(字段) 分组...

    T-SQL高级查询

    select * from student order by name desc; select * from student order by name asc; --group by 分组 按照年龄进行分组统计 select count(age), age from student group by age; 按照性别进行分组统计 select ...

    MYSQL常用命令大全

    mysql> select * from MyClass order by id limit 0,2; 或者: mysql> select * from MyClass limit 0,2; 6、删除表中数据 命令:delete from 表名 where 表达式 例如:删除表 MyClass中编号为1 的记录 mysql> ...

    MySQL进阶

    DQL:查询语句 ...max:计算最大值 min:计算最小值 sum:计算和 avg:计算平均值 注意:聚合函数的计算,排除null值。 解决方案: 1. 选择不包含非空的列进行计算 2. IFNULL函数 3. 分组查询: 语法:gr

    MySql基本查询、连接查询、子查询、正则表达查询讲解

    (1)max:求最大值 求每个部门的最高工资: [sql] view plain copy select EMP_NAME,EMP_DEP,max(EMP_SALARY) from EMPLOYEES group by EMP_DEP; (2)min:求最小值 求每个部门的最仰工资: [sql] view plain ...

    SQL常用语句最好用的

    select max(royaltyper)最大值,Title_ID from dbo.titleauthor group by Title_ID having Title_ID like ''%8%'' --5、查询Sales表,要求返回ord_date在1993年到1994年之间, --查询结果按照title_id降序的方式进行...

    sqlserver数据库常用增删改查

    AVG (平均) COUNT (计数)MAX (最大值) MIN (最小值) SUM (总合) SELECT "函数名"("栏位名") FROM "表格名" SELECT SUM(Sales) FROM Store_Information COUNT统计数量 SELECT COUNT("栏位名") FROM "表格名" ...

    SQL语句大全.docx

    21.Max 查询某一列最大值 22.Min 查询某一列最小值 23.Avg 查询某一列的平均值 24.Sum 查询某一列的总和 25.分组查询 group by 列 26.分组条件查询 having 查询平均年龄大于25以上的班级和班级平局年龄 ...

    2009达内SQL学习笔记

    检索返回数据的顺序没有特殊意义,为了明确地排序用 SELECT 语句检索出的数据,可使用 ORDER BY 子句。 ORDER BY 子句取一个或多个列的名字。 对空值,按无穷大处理(升序中,空值排最后;降序中排最前)。 1、...

    Oracle练习笔试大全

    // (函数max() 求出emp表中sal字段的最大值) 46、select min(sal) from emp; // (函数max() 求出emp表中sal字段的最小值) 47、select avg(sal) from emp; //(avg()求平均薪水); 48、select to_char(avg(sal), '...

    orcale常用命令

    SQL>select index_name,index_type,table_name from user_indexes order by table_name; 查看索引被索引的字段 SQL>select * from user_ind_columns where index_name=upper('&index_name'); 查看索引的大小 ...

    MySQL命令大全

    mysql> select * from MyClass order by id limit 0,2; 或者: mysql> select * from MyClass limit 0,2; 6、删除表中数据 命令:delete from 表名 where 表达式 例如:删除表 MyClass中编号为 的记录 mysql>...

    SQL语法大全

    MAX(字段名) 取得一个表格栏最大的值 MIN(字段名) 取得一个表格栏最小的值 SUM(字段名) 把数据栏的值相加 引用以上函数的方法: sql="select sum(字段名) as 别名 from 数据表 where 条件表达式" set rs=conn....

    数据库系统概论实验指导书.doc

    2.5实验准备: 1、 常用的统计函数: sum() 返回一个数字或计算列的总和 avg() 对一个数字列或计算求列平均值 min() 返回一个数字或一个数字表达式的最小值 max() 返回一个数字或一个数字表达式的最大值 count() ...

    超实用sql语句

    select top 10 b.* from (select top 20 主键字段,排序字段 from 表名 order by 排序字段 desc) a,表名 b where b.主键字段 = a.主键字段 order by a.排序字段 具体实现: 关于数据库分页: declare @start int,@...

    mysql数据库操作

    2、max(列名) 表示求此列的最大值 3、min(列名) 表示求此列的最小值 4、sum(列名) 表示求此列的和 5、avg(列名) 表示求平均数值 需求:查询女生id的最大值: 需求:查看“l”开头的学生年龄和 5、分组 ...

    精髓Oralcle讲课笔记

    -- (函数max() 求出emp表中sal字段的最大值) 46、select min(sal) from emp; -- (函数max() 求出emp表中sal字段的最小值) 47、select avg(sal) from emp; --(avg()求平均薪水); 48、select to_char(avg(sal),...

    mysql基础只是总结

    float[(M,D)] 10的(M-D)次方->代表最大值 D->代表保留位数不够补0 //For float(M,D), double(M,D) or decimal(M,D), M must be >= D //只写M 0-24代表float精确度总的十位数超过6位用科学计数法,小数超出四舍五...

    经典全面的SQL语句大全

    select top 10 b.* from (select top 20 主键字段,排序字段 from 表名 order by 排序字段 desc) a,表名 b where b.主键字段 = a.主键字段 order by a.排序字段  14、说明:前10条记录 select top 10 * form table1 ...

Global site tag (gtag.js) - Google Analytics