如下表結構和樣本數據:與組篩選查詢基於列未在GROUP BY語句
+-------------+------+-------------+ | EmployeeID | Name | WorkWeek | +--------------+-------+-----------+ | 1 | A | 1 | | 2 | B | 1 | | 2 | B | 2 | | 3 | C | 1 | | 3 | C | 2 | | 4 | D | 2 | +--------------+-------+-----------+
我希望選擇只工作1周(所以在全體員工這個例子中,只有employeeid = 1
將返回我可以用下面的查詢來獲取數據。
SELECT EmployeeId, Name FROM SomeTable GROUP BY EmployeeId, Name HAVING SUM (WorkWeek) = 1;
對我來說,HAVING SUM(WorkWeek) = 1
是一個黑客,這應該使用某種形式的GROUP BY
和COUNT
來處理,但是我無法圍繞如何構建該查詢來包裝我的頭。
任何幫助將是非常有用和啓發。
我不反對使用'HAVING'是必要的,它只是似乎是「正確」的方式做,這將是'HAVING COUNT(*)= 1'而不是使用SUM來合計Week列 – Gimbl