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, count之类的和那个sql没关系吧?按要求查出来的value是只有一行记录对吧? [其他解释] 这样子试试 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"; [其他解释]
可以的话直接将这个方式的翻译成hql就可以了 [其他解释]
+1 [其他解释]
我这个时候还要查avg(value), count(*) 按这种写法,这2个值就不对了 [其他解释] select max(value),count(value), ymdhms from AA 这个max, count都是对的 现在这个时间是第一条数据的时间 我就想拿到max(value)对应的时间