Tsql 使用varchar按问题分组

Tsql 使用varchar按问题分组,tsql,Tsql,数据库中有一些链接存储为varchar。有了这些链接,我想使用分组方式 http://example.com http://example.com http://example.com 数据上的SQL: SELECT COUNT(*) c, Url FROM Advertisements GROUP BY Url 我想要这个输出: c Url 3 http://example.com 但是我得到了三次: c Url 1 http://example.com 为什么不选

数据库中有一些链接存储为varchar。有了这些链接,我想使用分组方式

http://example.com
http://example.com
http://example.com
数据上的SQL:

SELECT COUNT(*) c, Url
    FROM Advertisements
    GROUP BY Url
我想要这个输出:

c Url 
3 http://example.com
但是我得到了三次:

c Url 
1 http://example.com

为什么不选择将varchar字段分组?它们是相同的,但GROUP BY没有检测到这一点。有什么想法吗?

如果包含这些url的字符串是存储的数据,那么它们不是相同的url,每个url都是不同的。因此,group by会将每个url放在不同的组中。

结尾是不同的

7​i18704

5​i18704

4​i18704

根据你的评论,我已经更新了他们的分组。试一试,你会得到什么

CREATE TABLE #Advertisements
(
ID INT IDENTITY(1,1),
Url VARCHAR(200)
)

INSERT INTO #Advertisements VALUES
('http://example.com')

INSERT INTO #Advertisements VALUES
('http://example.com')

INSERT INTO #Advertisements VALUES
('http://example.com')



SELECT COUNT(*) c, Url
    FROM #Advertisements
    GROUP BY Url

正如HLGEM和Martin所说,字段中的整个文本必须相同,以便GROUP BY工作,您可以使用类似GROUP BY SUBSTRING(Url,0,30)的内容,这样您将得到:

URL |计数


http://example.com |3

你能把实际数据粘贴到你的问题中吗?哈哈。。这些链接不是很有用,我很想帮忙,但这些对我来说都没有任何意义。请更新表中的数据、使用的查询以及最终结果。否此链接不可单击。这是存储在DB中的链接,我用于GROUPBY。不需要实际的URL。