首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2EE开发 >

mysql函数有关问题

2012-12-17 
mysql函数问题例如我有如下表AA:idymdhmsvalue12012-09-10 00:00:00122012-09-10 01:00:00232012-09-10 02

mysql函数问题
例如我有如下表AA:
id                      ymdhms                      value
1               2012-09-10 00:00:00            1
2               2012-09-10 01:00:00            2

3               2012-09-10 02:00:00            3

.................................................................
我用select max(value),ymdhms from AA;select min(value),ymdhms from AA
分别查最大值和最小值,按其他数据库(oracle,sqlServer)的经验,这个ymdhms应该是最大值、最小值所在行的数据,也就是最大值发生时间;最小值发生之间,可是查出来时间是乱的,并没有对应上,求解决办法,
[最优解释]
select max(value),count(value),(select ymdhms from AA where value=(select max(value) from AA)) as ymdhms from AA.
这样呢
[其他解释]
这样行不行嗯。select top 1 from AA order by value desc
[其他解释]

引用:
我这个时候还要查avg(value), count(*) 按这种写法,这2个值就不对了 


我觉得还要查avg, count之类的和那个sql没关系吧?按要求查出来的value是只有一行记录对吧?
[其他解释]
这样子试试
select * from AA where value=(select max(value) from AA) or value=(select min(value) from AA);
[其他解释]
引用:
这样子试试
select * from AA where value=(select max(value) from AA) or value=(select min(value) from AA);

有其它的办法么?? 给你看看我的hql

String hql = "select new znet.web.database.dto.SensorWarnStatisticsDto" +
"(o.sensorObj.sensorId, o.sensorObj.sensorName, o.sensorObj.positionInfo, o.sensorObj.sensorTypeObj.sensorTypeName," +
" o.status, o.sensorObj.sensorTypeObj.unit, count(o), max(o.maxValue), o.maxTime, avg(o.averageValue))" +
" from SensorWarn o where 1=1 and o.startTime>='" + startTime + "' and o.endTime<='" + endTime + "'";
if(!"".equals(status))
hql += " and o.status='" + status + "'";
hql += " group by o.sensorObj.sensorId order by o.sensorObj.sensorId";
[其他解释]
引用:
这样子试试
select * from AA where value=(select max(value) from AA) or value=(select min(value) from AA);

可以的话直接将这个方式的翻译成hql就可以了
[其他解释]
引用:
这样子试试
select * from AA where value=(select max(value) from AA) or value=(select min(value) from AA);


+1
[其他解释]
引用:
引用:这样子试试
select * from AA where value=(select max(value) from AA) or value=(select min(value) from AA);
可以的话直接将这个方式的翻译成hql就可以了

我这个时候还要查avg(value), count(*) 按这种写法,这2个值就不对了
[其他解释]
select max(value),count(value), ymdhms  from AA 
这个max, count都是对的
现在这个时间是第一条数据的时间
我就想拿到max(value)对应的时间

[其他解释]
可以了?最后用了7楼的吗

热点排行