mysql分组排序去数据的方式
2014-10-09 17:32
211 查看
-- 第一种方式 耗时0.074s
SELECT SQL_NO_CACHE t.* FROM (
SELECT * FROM rocky_b_repaymentrecord ORDER BY ID desc
) t GROUP BY t.user_id;
-- 第二种方式 耗时0.022s
SELECT SQL_NO_CACHE r.* FROM (
SELECT MAX(id) as id FROM rocky_b_repaymentrecord GROUP BY USER_ID
) s LEFT JOIN rocky_b_repaymentrecord r on(s.id = r.ID);
-- 第三种方式 耗时0.154s
SELECT SQL_NO_CACHE r.* FROM rocky_b_repaymentrecord r WHERE EXISTS (
SELECT id FROM (
SELECT MAX(id) as id FROM rocky_b_repaymentrecord GROUP BY USER_ID
) t where t.id = r.id
);
SELECT SQL_NO_CACHE t.* FROM (
SELECT * FROM rocky_b_repaymentrecord ORDER BY ID desc
) t GROUP BY t.user_id;
-- 第二种方式 耗时0.022s
SELECT SQL_NO_CACHE r.* FROM (
SELECT MAX(id) as id FROM rocky_b_repaymentrecord GROUP BY USER_ID
) s LEFT JOIN rocky_b_repaymentrecord r on(s.id = r.ID);
-- 第三种方式 耗时0.154s
SELECT SQL_NO_CACHE r.* FROM rocky_b_repaymentrecord r WHERE EXISTS (
SELECT id FROM (
SELECT MAX(id) as id FROM rocky_b_repaymentrecord GROUP BY USER_ID
) t where t.id = r.id
);
相关文章推荐
- mysql实现分组排序,获取第N条数据
- PHP+MySQL对当月,当周,当日数据统计,并将相应字段分组排序
- MYSQL根据分类分组取每组一条数据且按条件能排序的写法
- mysql 先排序后分组再排序查询数据
- mysql group_concat 分组,多字段统一排序及输出数据到java
- MySQL分组然后取每个分组中按照某些字段排序的topN条数据
- MySQL分组排序查前N条数据
- mysql分组,然后组内排序,最后取每组前2条数据
- mysql按照每天分组查询数据结果排序不是从1到31而是1后接10
- MYSQL-实现ORACLE 和SQLserver数据中- row_number() over(partition by ) 分组排序功能
- oracle或mysql分组查询并且获取前3条排序后的数据
- mysql查询获取分组后最新的一条记录,策略:先排序,然后在次分组查询(默认第一条),就是最新的一条数据了
- MySQL中实现分组排序
- 设置MySQL设置字符集和排序方式
- Mysql 恢复纯数据文本备份的两种方式
- WPF快速指导13:数据绑定之集合绑定之视图(排序、过滤、分组)
- mysql分组排序取前N条记录的最简洁的单条sql
- mysql分组排序取前N条记录的最简洁的单条sql !
- 分组统计后如何按指定的方式排序返回
- MYSQL-实现ORACLE- row_number() over(partition by ) 分组排序功能