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'
     
    总结:我感觉以上方法还不是不够高效,有好方法请指教。
  • 相关阅读:
    成功实施的APS项目故事分享---我们数据治理的心路历程
    成功实施的APS项目故事分享---如何管理与激励APS项目团队
    东莞裕同&易普优APS项目启动啦!
    包装印刷行业裕同集团&易普优APS项目顺利验收!
    易普优APS混流排序算法助力汽车整车厂的均衡生产
    动态调用WebService接口
    C#推送RocketMQ信息
    DEV带筛选行CheckBox选中问题
    验证上传文件真实格式
    PLSQL导出触发器代码
  • 原文地址:https://www.cnblogs.com/hsuchan/p/3591725.html
Copyright © 2011-2022 走看看