SQL クイズ: GROUP BY と COUNT(*) -- 問題編

ちょっと趣向を変えて SQL クイズでも出してみます。以下のテーブルがあるとき、変数に代入した COUNT(*) の結果はどうなるでしょうか。意外と驚く結果になるかもしれません。

SELECT * FROM Employee
/*
EmployeeID  EmployeeName  CountryID 
----------- ------------- ----------
E001        山田          C001    
E002        鈴木          C004    
E003        中村          C001    
E004        山本          C001    
*/
DECLARE @ret1 int
SET @ret1 = 999
SELECT @ret1 = COUNT(*) FROM Employee
SELECT @ret1
-- 出力される結果数字は何?
DECLARE @ret2 int
SET @ret2 = 999
SELECT @ret2 = COUNT(*) FROM Employee WHERE EmployeeID = N'E999'
SELECT @ret2
-- 出力される結果数字は何?
DECLARE @ret3 int
SET @ret3 = 999
SELECT @ret3 = COUNT(*) FROM Employee WHERE EmployeeID = N'E999' GROUP BY EmployeeID
SELECT @ret3
-- 出力される結果数字は何?

解答は明日にでも。それでは。