3
我想執行一個Linq to Sql語句來捕獲(過濾的)數據集中的計數和平均值。我有什麼工作,但它需要對數據庫進行兩次查詢,以便在一個查詢中可以進行查詢。Linq to Sql用於對一組數據進行計數和平均(無分組)
有趣的是,當我使用group by子句時,可以發出一個查詢。
例如:
select count(*), avg(duration) from events
我的LINQ看起來是這樣的:
var x = from e in db.events
select e;
x = from i in x
where i.NAME == "foo"
select i;
return new {
count = x.Count(),
avgDuration = x.Average(e => e.Duration)
};
與該代碼,我得到兩個查詢:
SELECT AVG([t0].[DURATION]) AS [value] FROM [dbo].[EVENTS] AS [t0]
和
SELECT COUNT(*) AS [value] FROM [dbo].[EVENTS] AS [t0]
還有別的辦法嗎?
從你給它看起來像你只會得到一個代碼有2列(count,avgDuration)的行是期望的結果嗎? – Kumu 2010-07-20 23:45:51
是的,它的錶快速快照 - 高查詢率(用於儀表板圖) – Gavin 2010-07-21 00:44:46