Sql 按第一个字母统计客户群的数量
我必须通过姓氏的第一个字母(全部26个字母)从带有姓氏列的客户数据库中获取客户数量。 我希望输出如下:Sql 按第一个字母统计客户群的数量,sql,count,Sql,Count,我必须通过姓氏的第一个字母(全部26个字母)从带有姓氏列的客户数据库中获取客户数量。 我希望输出如下: Alphabet Count A 34 B 23 C 9 D 67 对于SQL Server和MySQL,等等 SELECT LEFT(colName,1) as Alphabet,COUNT(*) as CountNumber FROM tableName GROUP BY LEFT(colName,1) 如果您
Alphabet Count
A 34
B 23
C 9
D 67
对于SQL Server和MySQL,等等
SELECT LEFT(colName,1) as Alphabet,COUNT(*) as CountNumber
FROM tableName
GROUP BY LEFT(colName,1)
如果您想要所有26个字母的计数列表,首先您必须获取一个临时表并用所有26个alphbets填充它,然后使用上面的结果集进行左联接
CREATE TABLE #AlphabetTable(Alphabet CHAR(1));
INSERT INTO #AlphabetTable VALUES('A');
INSERT INTO #AlphabetTable VALUES('B');
.
.
.
INSERT INTO #AlphabetTable VALUES('Z');
然后执行下面的查询,若特定字母表中不存在列值,则该查询将计数显示为零
SELECT a.Alphabet,COALESCE(CountNumber,0)
FROM #AlphabetTable a
LEFT JOIN
(
SELECT LEFT(colName,1) as Alphabet,COUNT(*) as CountNumber
FROM tableName
GROUP BY LEFT(colName,1)
) t
ON a.Alphabet=t.Alphabet
对于具有CLI\u ID作为唯一标识符列且CLI\u名称作为列的表客户端 从客户端选择左(CLI\u名称,1)第一个字母、计数(CLI\u ID)Cnt 按左侧分组(CLI\u名称,1) 按Cnt desc订购