【问题标题】:SQL: How to count occurrences based on file extensionSQL:如何根据文件扩展名计算出现次数
【发布时间】:2014-02-27 18:48:57
【问题描述】:

我有一个返回一列值的查询:

?????? ?? ?????? ??????? ?.?..xlsx
1028-13055 Single Patient Focus Wave 3.sav
2.xlsx
2011 BBQ (13Dec2013).sav
2014 Health IT Purchasing Intentions Survey Results.xlsx
2014 Safety Training and Safety Professionals Survey.sav

如何根据文件扩展名计算出现次数?在上面的例子中,我们有三行用于 xlsx 扩展,两行用于 sav 扩展?

【问题讨论】:

  • 这只会帮助你分隔符不是空格而是点:stackoverflow.com/questions/5123585/…
  • 您使用什么 RDBMS(MySQL、Oracle、...)?
  • @ABCD 通常 STRING 函数依赖于它。
  • 为什么说只有2个.sav?我数 3. 是否有一些我遗漏的标准?
  • 抱歉,手动误算了

标签: sql sql-server


【解决方案1】:

试试这个

SELECT extension, 
       Count(*) AS ExtensionCount 
FROM   (SELECT RIGHT(name, Charindex('.', Reverse(name)) - 1) AS Extension 
        FROM   files) t 
GROUP  BY extension 

SQL 小提琴

http://sqlfiddle.com/#!6/27269/5

【讨论】:

    【解决方案2】:

    试试这个:

    SELECT RIGHT(yourcolumnname,CHARINDEX('.', Reverse(yourcolumnname)) -1)
    FROM yourtable
    

    只隔离扩展部分,然后计算出现次数

    【讨论】:

      【解决方案3】:

      请尝试:

      SELECT colcnt, 
             Count(*) TotCnt 
      FROM  (SELECT RIGHT(col, Charindex('.', Reverse(col)) - 1) ColCnt 
             FROM   yourtable)x 
      GROUP  BY colcnt 
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-10-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多