having 절을 포함하는 엔터티 쿼리에 linq을 쓰려면 어떻게해야합니까? 예를 들어Entity Framework T-Sql "equivalent"having "
:
SELECT State.Name, Count(*) FROM State
INNER JOIN StateOwner ON State.StateID = StateOwner.StateID
GROUP BY State.StateID
HAVING Count(*) > 1
having 절을 포함하는 엔터티 쿼리에 linq을 쓰려면 어떻게해야합니까? 예를 들어Entity Framework T-Sql "equivalent"having "
:
SELECT State.Name, Count(*) FROM State
INNER JOIN StateOwner ON State.StateID = StateOwner.StateID
GROUP BY State.StateID
HAVING Count(*) > 1
단지 결과에 where
절을 사용하지 않는 이유라도?
var query = from state in states
join stateowner in stateowners
on state.stateid equals stateowner.stateid
group state.Name by state.stateid into grouped
where grouped.Count() > 1
select new { Name = grouped.Key, grouped.Count() };
나는 당신이 Where
절 다음에 GroupBy
를 사용할 수 있다고 생각하고 그것은 Having
로 변환합니다. 그러나 완전히 확실하지는 않습니다.
MySql의 경우, WHERE가 아닌 내부 SELECT가 발생합니다 (HAING이 아님). 그래서 성능 문제가 발생할 것입니다. – Yuri
Dammit Jon .... 하하 ... 다시 이겼어! <3> – womp
grouped.Any()가 Count()> 0이 아닌 Count()> 1에 사용됩니다. – Lucas
@Craig : 'Count()> 0'이면 제한이 필요 없습니다. 모든 것은 그것이 내적 조인이라는 것을 감안하면 ... –