在实体框架中,如何在 Select 子句中使用聚合函数?

卡洛斯·门迭塔

是否可以将以下工作 SQL 语句转换为实体框架查询?

SELECT Year([Model Date])
       ,Model
       ,COUNT(SERIAL) AS [Model Count]
       ,(SUM([SCORE])/COUNT(SERIAL)) as [Average SCORE]
       ,(COUNT(SERIAL)/SUM([SCORE])) * 100 AS [Score Rate]
FROM [MODELS]
WHERE Model IS NOT NULL 
AND [ACE PROFILE] <> 0
AND SERIAL IS NOT NULL
GROUP BY Model, Year([Model Date])
IT微汉
public class Db : DbContext
{
    public Db(string connection) : base(connection) {}
    public DbSet<MODEL> MODELS { get; set; }
}

[Table("MODELS")]
public class MODEL
{
    [Key]
    public string Model { get; set; }
    [System.ComponentModel.DataAnnotations.Schema.Column("ACE PROFILE")]
    public int? ACE_PROFILE { get; set; }
    public int? SERIAL { get; set; }
    public int? SCORE { get; set; }
    [System.ComponentModel.DataAnnotations.Schema.Column("Average SCORE")]
    public int Average_SCORE { get; set; }
    [System.ComponentModel.DataAnnotations.Schema.Column("Model Date")]
    public DateTime Model_Date { get; set; }
}

void Main()
{
    var db = new Db(Connection.ConnectionString);

    var result =    from T in db.MODELS
                    where T.Model != null && T.ACE_PROFILE != 0 && T.SERIAL != null
                    group T by new { DateYear = T.Model_Date.Year, T.Model } into g
                    select new
                    {
                        g.Key.DateYear,
                        g.Key.Model,
                        Model_Count = g.Count(c => c.SERIAL != null),
                        Average_SCORE = g.Sum(c => c.SCORE ) / g.Count(c => c.SERIAL != null),
                        Score_Rate = (g.Count(c => c.SERIAL != null) / g.Sum(c => c.SCORE)) * 100
                    };
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在select子句中使用并集?

如何在 SELECT 子句中使用子查询?

如何在SELECT / INTO语句中使用OUTPUT子句

如何在Select子句中使用构造函数编写对多个表的选定列的HQL JOIN查询

在python中select语句的like子句中使用%

如何在select语句中添加列并在where子句中使用ir

Oracle group by子句在select语句中使用嵌套函数

在 ORDER BY 子句中使用 CASE 表达式时,Postgresql“列必须出现在 GROUP BY 子句中或用于聚合函数中”

如何在execute select语句where子句中使用变量而不会在列上出错?

如何在WHERE子句中使用SELECT语句编写SQL DELETE语句?

在选择语句中使用“order by”时出错(错误:列不包含在“聚合函数或 GROUP BY 子句”中)

如何在 IN 子句中使用 max 函数

如何在Where子句中使用TimeDiff函数

如何在 IN 子句中使用填充函数的结果?

在HAVING子句中使用SELECT语句时,如何省略该列?

在select子句中使用replace

在where子句中使用select

在select语句中使用WHERE子句

实体框架if语句中的select

如何在select语句中包含PERCENTILE_CONT列,而又不产生有关ORDER BY子句或聚合函数的错误?

如何在SQL中的SUM子句中使用not in子句

如何在实体框架和函数中处理空值

如何在IN子句中使用的函数中传递参数数量

该列在选择列表中无效,因为该列未包含在聚合函数或GROUP BY子句中(嵌套SELECT,内部联接)

如果我不能在 where 子句中使用聚合,如何获得结果

如何在Postgres中通过数学运算在order by子句中使用聚合结果

在实体框架中使用Select with SingleOrDefault

如何在 IN 子句中使用通配符

如何在“with”子句中使用Refl