mysql分组取第一个值

业务需要,统计交易数据tps,sql如下:

SELECT
    idate ,
    itime ,
    num ,
    rank
FROM
    (
        SELECT
            tmp.idate ,
            tmp.itime ,
            tmp.num ,

        IF(
            @pdept = tmp.idate ,@rank :=@rank + 1 ,@rank := 1
        ) AS rank ,
        @pdept := tmp.idate
    FROM
        (
            SELECT
                DATE_FORMAT(inserttime , '%Y-%m-%d') idate ,
                inserttime AS itime ,
                count(1) AS num
            FROM
                info_bind
            GROUP BY
                DATE_FORMAT(inserttime , '%Y-%m-%d') ,
                inserttime
            ORDER BY
                idate ASC ,
                num DESC
        ) tmp ,
        (SELECT @pdept := NULL ,@rank := 0) a
    ) result
WHERE
    rank = 1

 

posted @ 2017-01-23 15:43  cafebabe  阅读(2244)  评论(0)    收藏  举报