Sql 按第一个字母统计客户群的数量

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) 如果您

我必须通过姓氏的第一个字母(全部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)
如果您想要所有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订购