我必须使用Lastname列的Customers数据库中的姓氏的第一个字母表(对于所有26个字母表)获取客户数量。 我希望输出是这样的:
Alphabet Count
A 34
B 23
C 9
D 67
等等
答案 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命令