zoukankan      html  css  js  c++  java
  • 求数据表中一字段的相同前缀出现次数最大的前缀

    一、首先说一下我的需求,在数据表T_CERTI_EXELAW中求certicode字段前三位出现次数最多的三位(期望结果是207),数据表如下:
                 
                  期望结果是207
     
    二、两种sql语句比较(oracle数据库)
    方法一:常规嵌套(耗时:0.031seconds)
     SELECT NAME
       FROM (SELECT HEAD AS NAME, COUNT(HEAD) AS TIMES
               FROM (SELECT SUBSTR(M.CERTICODE, 0, 3) AS HEAD
                       FROM T_CERTI_EXELAW M
                      WHERE M.MAKEDEPART =
                            (SELECT MAKEDEPART
                               FROM T_CERTI_EXELAW
                              WHERE CERTICODE = 'ccc20140310112954')) T
              GROUP BY HEAD)
      WHERE TIMES = (SELECT MAX(TIMES)
                       FROM (SELECT HEAD AS NAME, COUNT(HEAD) AS TIMES
                               FROM (SELECT SUBSTR(M.CERTICODE, 0, 3) AS HEAD
                                       FROM T_CERTI_EXELAW M
                                      WHERE M.MAKEDEPART =
                                            (SELECT MAKEDEPART
                                               FROM T_CERTI_EXELAW
                                              WHERE CERTICODE = 'ccc20140310112954')) T
                              GROUP BY HEAD))
         方法二:     使用排序(耗时:0.016 seconds)                
         SELECT NAME FROM (SELECT HEAD AS NAME, COUNT(HEAD) AS TIMES
            FROM (SELECT SUBSTR(M.CERTICODE, 0, 3) AS HEAD
               FROM T_CERTI_EXELAW M
               WHERE M.MAKEDEPART =
                    (SELECT MAKEDEPART
                       FROM T_CERTI_EXELAW
                      WHERE CERTICODE = 'ccc20140310112954')) T
      GROUP BY HEAD ORDER BY times DESC ) WHERE ROWNUM='1'
     
    总结:我感觉以上方法还不是不够高效,有好方法请指教。
  • 相关阅读:
    JAVA中如何正确的用String转Date
    Windows搭建测试RabbitMq遇到的问题
    使用mysql innodb 使用5.7的json类型遇到的坑和解决办法
    Eclipse快捷键 10个最有用的快捷键
    python数据类型:序列(字符串,元组,列表,字典)
    mysql建表以及列属性
    mysql中的union用法以及子查询综合应用
    一道很好的mysql面试练习题,having综合应用
    mysql常用语句练习-基于ecshop2.7.3数据库(1)
    自定义MVC框架之工具类-模型类
  • 原文地址:https://www.cnblogs.com/hsuchan/p/3591725.html
Copyright © 2011-2022 走看看