gpt4 book ai didi

ormlite-servicestack - 如何使用 ServiceStack OrmLite 执行 GroupBy 语句

转载 作者:行者123 更新时间:2023-12-02 08:27:27 30 4
gpt4 key购买 nike

我正在为数据可视化做一些查询,并依靠 GroupBy、Avg、Sum 和类似函数从数据库中获取良好的数据集。

我想在 ServiceStack OrmLite 中使用类似于 GroupBy 的东西。关于ShippersExample page我看到以下查询。有没有更简单或更好的方法来做到这一点?

例如,我有一个“位置”列,我想找到条目的前 5 个位置,并列出这些位置及其出现的次数。我只有 1 个表,因此不需要连接。

    var rows = db.SqlList<ShipperTypeCount>(
"SELECT {0}, COUNT(*) AS Total
FROM Shippers
GROUP BY {0}
ORDER BY Total".Fmt("ShipperTypeId".SqlColumn()));

最佳答案

您还可以使用 SqlExpression,例如:

var rows = db.SqlList<ShipperTypeCount>(
db.From<Shipper>()
.GroupBy(x => x.ShipperTypeId)
.OrderBy("Total")
.Select(x => new { x.ShipperTypeId, Total = Sql.As(Sql.Count("*"), "Total") }));

或者,除了使用具体的 POCO,您还可以使用通用字典来填充 ShipperTypeId => Total 的字典,例如:

var q = db.From<Shipper>()
.GroupBy(x => x.ShipperTypeId)
.OrderBy("2")
.Select(x => new { x.ShipperTypeId, Total = Sql.Count("*") });

var results = db.Dictionary<int, int>(q);

关于ormlite-servicestack - 如何使用 ServiceStack OrmLite 执行 GroupBy 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30772729/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com