【问题标题】:Group by month name in sql using SqlKata使用SqlKata在sql中按月份名称分组
【发布时间】:2018-04-27 10:39:52
【问题描述】:

我有以下查询,我想按月份而不是完整日期对结果进行分组。 有什么简单的方法可以实现吗?注意到我正在使用 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();

【问题讨论】:

    标签: c# sql group-by query-builder sqlkata


    【解决方案1】:

    您有 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();
    

    免责声明:查看您的数据库品牌文档中的日期函数,以了解如何在您的案例中从日期获取月份。

    【讨论】:

      【解决方案2】:

      这样做:

      select month(`Date`);

      【讨论】:

        猜你喜欢
        • 2014-01-30
        • 2018-08-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多