SQL 获取字符串最常见部分的计数

标签 sql sql-server-2008 ssms

我能够获得具有大多数相同值的列的计数,例如

SELECT     COUNT(*) AS Count, ProjectID
FROM         Projects
GROUP BY ProjectID
ORDER BY Count DESC

所以现在我有这样的表,

ProjectID    ProjectUrl
1            http://www.CompanyA.com/Projects/123
2            http://www.CompanyB.com/Projects/124
3            http://www.CompanyA.com/Projects/125
4            http://www.CompanyB.com/Projects/126
5            http://www.CompanyA.com/Projects/127

现在不提供任何参数的预期结果

ProjectUrl = http://www.CompanyA.com Count = 3
ProjectUrl = http://www.CompanyB.com Count = 2

编辑

抱歉,我忘记提及表中的 URL 类型,虽然 URL 是随机的,但有些 URL 是常见的。由于我们正在创建项目类别,因此项目类别 url 可以是,

https://spanish.CompanyAa2342.com/portal/projectA/projectTeamA/ProjectPersonA/Task/124

但对于某些项目来说,没有项目团队等,所以它有点随机:?

我需要查询一些更像通用的东西。

网址有哪些共同点

http://ramdomLanguage.CompanyName.com/portal/RandomName ......

最佳答案

请尝试:

select 
    Col, 
    COUNT(Col) Cnt
from(
    select
        SUBSTRING(ProjectUrl, 0, PATINDEX('%.com/%', ProjectUrl)+4) Col
    from tbl
)x group by Col

SQL Fiddle Demo

关于SQL 获取字符串最常见部分的计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24282283/

相关文章:

SQL 重命名列字段

mysql - SQL插入并选择多列?

mysql - 获取更新行的列值

java - HQL - 通过电子邮件或带点 ('.' 的字符串查询始终返回空集

sql-server-2008 - 如何确定参数值是否传递给存储过程

sql - 使用 T-SQL 查找特定年份任何 ISO 周内的订单

sql - 立即测试 SQL Agent Job 以忽略计划的任何解决方案

sql-server - SQL Server Management Studio 中的选项可扩展结果网格中的列以显示大文本

sql-server - 消息102,级别15,状态1,第3行带有sp_executesql的 ' '附近的语法不正确

docker - 我应该在开发计算机上的哪里安装SQL Management Server实例?