按第一个字母计算客户组数

时间:2014-07-23 04:54:20

标签: sql count

我必须使用Lastname列的Customers数据库中的姓氏的第一个字母表(对于所有26个字母表)获取客户数量。 我希望输出是这样的:

Alphabet Count
A          34
B          23
C           9
D           67

等等

2 个答案:

答案 0 :(得分:1)

对于SQL Server和MySQL

SELECT LEFT(colName,1) as Alphabet,COUNT(*) as CountNumber
FROM tableName
GROUP BY LEFT(colName,1)

如果你想要所有26个字母的计数列表,首先你必须使用一个临时表并用所有26个alphbets填充它,然后使用上面的结果集进行LEFT JOIN。

 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

答案 1 :(得分:0)

对于CLI CLIID,其CLI_ID为唯一标识符列,CLI_NAME为列

从CLIENT中选择LEFT(CLI_NAME,1)FirstLetter,count(CLI_ID)Cnt LEFT组(CLI_NAME,1) 由Cnt desc命令

相关问题