SELECT SUM(A), SUM(B), AVG(C) FROM TALBE_AAA 这句SQL怎么LINQ写呀
SELECT SUM(A), SUM(B), AVG(C) FROM TALBE_AAA 这句SQL如何LINQ写呀
SELECT SUM(A), SUM(B), AVG(C) FROM TALBE_AAA 这句SQL如何LINQ写呀
千万不要说什么
TALBE_AAA.Sum(x => x.a);
TALBE_AAA.Sum(x => x.b);
TALBE_AAA.Sum(x => x.c);
或者
var query = new { suma = TALBE_AAA.Sum(x => x.A), sumb = TALBE_AAA.Sum(x => x.B), avgc = TALBE_AAA.Average(x => x.C) };
这样弱智的写法。
------解决方案--------------------
变通方法 ,group by 常数
SELECT SUM(A), SUM(B), AVG(C) FROM TALBE_AAA 这句SQL如何LINQ写呀
千万不要说什么
TALBE_AAA.Sum(x => x.a);
TALBE_AAA.Sum(x => x.b);
TALBE_AAA.Sum(x => x.c);
或者
var query = new { suma = TALBE_AAA.Sum(x => x.A), sumb = TALBE_AAA.Sum(x => x.B), avgc = TALBE_AAA.Average(x => x.C) };
这样弱智的写法。
------解决方案--------------------
变通方法 ,group by 常数
using (var context = new TestDbContext())
{
var query = context.TALBE_AAA.GroupBy(t => 0)
.Select(g => new
{
SA = g.Sum(t => t.A),
SB = g.Sum(t => t.B),
AC = g.Average(t => t.C)
});
Console.WriteLine(query.ToString());
}
SELECT
[GroupBy1].[K1] AS [C1],
[GroupBy1].[A1] AS [C2],
[GroupBy1].[A2] AS [C3],
[GroupBy1].[A3] AS [C4]
FROM ( SELECT
[Extent1].[K1] AS [K1],
SUM([Extent1].[A1]) AS [A1],
SUM([Extent1].[A2]) AS [A2],
AVG([Extent1].[A3]) AS [A3]
FROM ( SELECT
0 AS [K1],
[Extent1].[A] AS [A1],
[Extent1].[B] AS [A2],
CAST( [Extent1].[C] AS float) AS [A3]
FROM [dbo].[TALBE_AAA] AS [Extent1]
) AS [Extent1]
GROUP BY [K1]
) AS [GroupBy1]