rob*_*rtc 2 ormlite-servicestack
我正在对数据可视化进行一些查询,并依赖GroupBy,Avg,Sum和类似函数从数据库中获取一个好的数据集.
我想使用与ServiceStack OrmLite类似的GroupBy.在ShippersExample页面上,我看到以下查询.有更简单或更好的方法吗?
例如,我有一个"位置"列,想要查找条目的前5个位置,并列出这些位置的次数.我只有1个表,所以不需要加入.
var rows = db.SqlList<ShipperTypeCount>(
"SELECT {0}, COUNT(*) AS Total
FROM Shippers
GROUP BY {0}
ORDER BY Total".Fmt("ShipperTypeId".SqlColumn()));
Run Code Online (Sandbox Code Playgroud)
您也可以使用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") }));
Run Code Online (Sandbox Code Playgroud)
或者,您可以使用通用字典来填充字典,而不是使用具体的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);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1798 次 |
| 最近记录: |