小编典典

SQL有多少条记录以相同的字母开头

sql

因此,我在A列的数据库中有成千上万的记录。

我想看看有多少以每个字母和所有单个数字开头。

所以我需要一个计数和与之相关的字母。我还想查看所有两个字母数字组合,即aa ab ac ad ae等及其计数。

还有三个和四个字符等。


阅读 151

收藏
2021-04-14

共1个答案

小编典典

通常GROUP BY,您可以使用类似的表达式LEFT(columnname, 1),该表达式可让您执行COUNT()按任意表达式分组的汇总。使用的最理想的子字符串函数可能取决于您的RDBMS。

SELECT
  UPPER(LEFT(columnname, 1)) AS first_char,
  COUNT(*)
FROM yourtable
GROUP BY UPPER(LEFT(columnname, 1))
ORDER BY first_char ASC

同样,要获得2个字符的匹配

SELECT
  UPPER(LEFT(columnname, 2)) AS first_2char,
  COUNT(*)
FROM yourtable
GROUP BY UPPER(LEFT(columnname, 2))
ORDER BY first_2char ASC

某些RDBMS允许您在GROUP BY而不是完整表达式中使用列别名,就像在简化中那样GROUP BY first_char

请注意,我将它们大写,因此Ab, AB, ab, aB如果您使用区分大小写的排序规则,则不会得到单独的匹配项。(但是,我认为默认情况下,SQL
Server使用 不区分大小写的 排序规则)

2021-04-14