相关疑难解决方法(0)

使用GROUP BY和COUNT(DISTINCT)的LINQ to SQL

我必须执行以下SQL查询:

select answer_nbr, count(distinct user_nbr)
from tpoll_answer
where poll_nbr = 16
group by answer_nbr
Run Code Online (Sandbox Code Playgroud)

LINQ to SQL查询

from a in tpoll_answer 
where a.poll_nbr = 16 select a.answer_nbr, a.user_nbr distinct 
Run Code Online (Sandbox Code Playgroud)

映射到以下SQL查询:

select distinct answer_nbr, distinct user_nbr
from tpoll_answer
where poll_nbr = 16
Run Code Online (Sandbox Code Playgroud)

到现在为止还挺好.但是在尝试GROUP结果时问题就出现了,因为我无法找到映射到我在这里写的第一个查询的LINQ to SQL查询(感谢LINQPad让这个过程变得更容易).以下是我发现的唯一一个给我预期结果的:

from answer in tpoll_answer where answer.poll_nbr = 16 _
group by a_id = answer.answer_nbr into votes = count(answer.user_nbr)
Run Code Online (Sandbox Code Playgroud)

这反过来会产生所有SQL查询中的丑陋和非优化:

SELECT [t1].[answer_nbr] AS [a_id], (
    SELECT COUNT(*)
    FROM (
        SELECT CONVERT(Bit,[t2].[user_nbr]) AS [value], [t2].[answer_nbr], [t2].[poll_nbr] …
Run Code Online (Sandbox Code Playgroud)

c# linq linq-to-sql

58
推荐指数
2
解决办法
14万
查看次数

您希望存在哪些工具/应用程序/任何内容?

这可能听起来像一个松散的问题,但我认为它可能有一些用处.我经常看到人们,无论是SO还是关闭,都说他们想要为某种项目做贡献或工作,但他们不知道什么或如何.大多数时候,回应是"找到一个开源项目"或"只做他们感兴趣的事情".如果我们能得到一些更好的答案,我认为这将是非常棒的.所以问题是,你,SO社区,一群开发人员,黑客和程序员,认为有趣还是酷?一些已被淘汰的开源项目?新鲜玩意?

理想情况下,这个问题可能会推动某人实施或承担其中一个项目.如果不出意外,这可能是衡量开发人员真正感兴趣的项目的有趣指标.

open-source

10
推荐指数
1
解决办法
941
查看次数

标签 统计

c# ×1

linq ×1

linq-to-sql ×1

open-source ×1