首页新闻找找看学习计划

mysql查询所有分类的前几条数据

0
悬赏园豆:50 [已解决问题] 解决于 2017-03-02 14:52
 t_pf_borrow 表名 

id  主键id
platf_id 类型id
rate     数值

查询所有类型最大的三个数值
IT、小白的主页 IT、小白 | 初学一级 | 园豆:114
提问于:2017-03-02 11:23
< >
分享
最佳答案
1
SELECT
    *
FROM
    t_pf_borrow pb
WHERE
    3 > (
        SELECT
            COUNT(1)
        FROM
            t_pf_borrow
        WHERE
            platf_id = pb.platf_id
        AND rate > pb.rate
    )
ORDER BY
    pb.rate DESC

 

收获园豆:50
、熙和 | 小虾三级 |园豆:1486 | 2017-03-02 12:23

这是我写的,和你的差不多,但是效率低了,我是在工作环境用的,才3百多条就要10多秒,大哥,有性能好一点的写法吗
select * from t_pf_borrow as d
where status='1' and EXISTS (
select count(1) from t_pf_borrow
where platf_id=d.platf_id and rate > d.rate
having count(1)<3
) order by d.rate desc

IT、小白 | 园豆:114 (初学一级) | 2017-03-02 12:53

@IT、小白: having count(1)<3 这里怎么单独出现的HAVING 子句, 本身就不符合规范

、熙和 | 园豆:1486 (小虾三级) | 2017-03-02 14:43

@IT、小白: sql效率低 用工具调试, 找哪里执行慢, 该加索引加索引 ; EXISTS () 本来就比较慢

、熙和 | 园豆:1486 (小虾三级) | 2017-03-02 14:48

@、熙和: 受教了,谢谢大哥

IT、小白 | 园豆:114 (初学一级) | 2017-03-02 14:51
其他回答(2)
0

百度 分组取前几条 sql

吴瑞祥 | 园豆:28675 (高人七级) | 2017-03-02 11:39

大哥,回答能专业点吗,如果我之前肯定是百度过啊,但是没有我要的答案。我用的数据库是mysql

支持(0) 反对(0) IT、小白 | 园豆:114 (初学一级) | 2017-03-02 11:40

@IT、小白: 我随便一搜就全是答案啊.

http://www.cnblogs.com/zhzhang/p/5336935.html

支持(0) 反对(0) 吴瑞祥 | 园豆:28675 (高人七级) | 2017-03-02 15:02
0

  select * from (select * from t_pf_borrow order by platf_id  DESC  ) limit 3

先降序 然后取前三行

大园子 | 园豆:37 (初学一级) | 2017-03-02 12:20
大哥,你查出来的是所有分类的前三行数据,我要查的是每个分类的前三行。
 例如                                                               我要的 查询结果应为                                   你的语句查询后结果为
   platf_id   rate                                            platf_id   rate                                               platf_id   rate
     A           9                                               A             9                                                 A             9
     B           9                                              A              8                                                B            9
     C           9                                              A               8                                                C             9
     A          8                                               B               9
     B          5                                               B                5
     C          6                                               B                3
     A          8                                               C                 9
     B           3                                              C                 8
     C          2                                               C                  6
     A          4
     B          3
     C         8
支持(0) 反对(0) IT、小白 | 园豆:114 (初学一级) | 2017-03-02 12:22

@IT、小白: 额 我理解错了。。

支持(0) 反对(0) 大园子 | 园豆:37 (初学一级) | 2017-03-02 12:27
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册