不确定这是否可行,但基本上我有一个包含2列的表:ID和Category。一些示例记录如下所示:
1 Accounting
2 Accounting
3 Accounting & Tax Preparation
4 Banks
5 Banks & Financial Services
6 Real Estate
7 Real Estate - Commercial
8 Real Estate - Commercial & Residential
9 Real Estate
我想要生成的是一个列表,它只选择一次类别但计算每个类别的出现次数,并且还可以消除非常相似的重复项。所以结果看起来应该是这样的:
Real Estate - 4
Accounting - 3
Banks - 2
我现在拥有的是:
SQL = "SELECT DISTINCT(category), Count(*) as c " & _
"FROM myTable " & _
"GROUP BY category" & _
"ORDER BY c DESC, category"
所以它有自己列出的所有类似的,而不是与其他类似的组合。我知道我可以使用" LIKE"带有通配符的关键字,但是当你不知道可能的类别是什么时,你会怎么写呢?
任何建议表示赞赏,谢谢!
答案 0 :(得分:1)
除了Real Estate
有多少组有额外的空间?您可以使用CHARINDEX
来定位空间(假设MS SQL),然后按照左边的字符进行分组。
SELECT LEFT(Category, LEN(Category) - CHARINDEX(' ', Category)), COUNT(*) FROM myTable GROUP BY LEFT(Category, LEN(Category) - CHARINDEX(' ', Category))