我有以下查询,我想按月份而不是完整日期对结果进行分组。
有没有简单的方法可以做到这一点?注意我正在使用SqlKata库
预期结果
Month | Balance
------|--------
1 | 100
2 | 150
3 | 300
代替
Date | Balance
-------- |------
2018-01-01 | 100
2018-01-02 | 90
..... | ....
2018-02-01 | 150
我当前的代码是:
var balances = db.Query("Balances")
.WhereBetween("Date", from, to)
.Select("Date")
.Select("sum([Balance]) as Balance")
.GroupBy("Date")
.Get();
最佳答案
您有GroupByRaw(和SelectRaw
),只需使用内置函数的数据库即可获取月份。假设您正在使用SQL Server和MONTH函数:
var balances = db.Query("Balances")
.WhereBetween("Date", from, to)
.SelectRaw("MONTH(Date)")
.Select("sum([Balance]) as Balance")
.GroupByRaw("MONTH(Date)")
.Get();
免责声明:检查数据库品牌文档中的日期功能,以了解如何从日期中获取月份。
关于c# - 使用SqlKata在sql中按月名称分组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50060640/