mysql怎么按条件提取每小时最后一条数据

mysql如何按条件提取每小时最后一条数据?

看了 这个帖子, http://topic.csdn.net/u/20111117/19/d42ebf2b-52bd-46ac-a3ee-043d2ac33853.html

SQL code


   
select p.*,
row_number() over(
partition by substring(CONVERT(varchar(100), log_time,120),1,13)  
order by log_time desc) num_id
from table
where num_id=1
;
意思就是以日期+小时作为分组,组内用时间排序,倒序取第一条记录就是楼主所要的


感觉好像是 sqlserver的语句.

我要在mysql 里怎么用啊?

也可以是存储过程. 

我的表结构为 

parval=array(218,222,288,300); 更多, 这里演示只输入几个

`id`, `userid`, `parcode`, `parval`, `uptime`

 

1 9090 218 90 2012-08-01 12:02:04

2 9090 218 90 2012-08-01 12:12:04

3 9090 222 70 2012-08-01 12:51:04

4 9090 222 120 2012-08-01 13:02:04

5 9090 222 90 2012-08-01 14:02:04

6 9090 222 90 2012-08-01 15:02:04

7 9090 288 73 2012-08-01 15:02:04

8 9090 218 90 2012-08-01 16:02:04

9 9090 222 90 2012-08-01 17:02:04

10 9090 288 90 2012-08-01 17:02:04 

11 9090 288 90 2012-08-01 18:02:04

12 9090 288 90 2012-08-01 19:02:04 

我现在放的数据比较少

现在需要的就是 每个 users 的 parcode 的值 parval 每小时内只出现一次,取最后时间的就可以了

如何实现输入 userid = 9090

就把数据按以下方式列出

userid =9090 的数据

2012-08-01 12点 218=90 ,222=70,288=”,300=”

2012-08-01 13点 218=”,222=120,288=”,300=”

2012-08-01 14点 218=” ,222=90,288=”,300=”

就这样的格式, 如何写mysql 语句?

谢谢


SQL code

SELECT * FROM (
    SELECT 
        *,
        DATE(uptime) AS d,
        SUBSTRING(uptime,12,2) as h
    FROM tb
    ORDER BY userid,parcode,parval,uptime DESC
) tb2
GROUP BY userid,parcode,parval,d,h


                        
  
  
                    
mysql怎么按条件提取每小时最后一条数据

相关文章:

你感兴趣的文章:

标签云: