gpt4 book ai didi

c# - 查询 SQL Server 的百分比

转载 作者:太空宇宙 更新时间:2023-11-03 11:05:29 24 4
gpt4 key购买 nike

我有三个表:Customers , Origins和(映射表)CustomerOrigins .请注意,一位客户可以来自多个 Origin (例如 InternetAdvertisementNewsletter)

现在我想显示一个饼图,显示我的客户来自哪里。

结果应该是 List<string, double> .

我完全迷路了,甚至不知道如何开始整个查询...任何提示都将不胜感激。

最佳答案

你不能做 List<string, double>因为List<T>只接受一个类型参数。试试这个:

var results =
(from c in db.Customers
from o in c.Origins
group o by o.DisplayName into g
let total = db.Customers.Count()
select new
{
Origin = g.Key,
Percent = ((double)g.Count() / (double)total) * 100
})
.ToList();

这有可能多次计算单个客户(每个来源一次),因此您不会得出总计 100% 的列表。

如果你想要超过 CustomerOrigin 的百分比记录,试试这个

var results =
(from c in db.Customers
from o in c.Origins
group o by o.DisplayName into g
let total = db.Customers.Sum(x => x.Origins.Count())
select new
{
Origin = g.Key,
Percent = ((double)g.Count() / (double)total) * 100
})
.ToList();

关于c# - 查询 SQL Server 的百分比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16018841/

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