我有以下linq表达式:
var files = posts
.Select(post => int.Parse(post.Length.ToString()[0].ToString()))
.GroupBy(c => c)
.ToDictionary(g => g.Key, g => g.Count());
我想将其翻译为SQL(Microsoft SQL)。 source
为IEnumerable<string>
的位置。问题是如何按照第一个数字对记录进行分组,并计算每个组中的项目数量。
数据库有一个表Posts
,其中包含列Body
(varchar(max)
)。我对它的长度的第一位数感兴趣。
谢谢!
答案 0 :(得分:1)
SELECT firstDigit as Key, COUNT(*) as theCount
FROM
(
SELECT convert(int, LEFT(convert(varchar(30), f), 1)) as firstDigit
FROM Source as f
) as sub
GROUP BY firstDigit