我有一個查詢,得到正確的團隊和人數的數量的總和和計數的事件。但是,可以在上一個日期的同一位置的多個事件,所以我試圖在單日單個位置來獲得人的所有事件總數的總和。 這裏是我目前使用的查詢:SQL總和多行不集團通過
SELECT
loc_name,
eventDate,
COUNT(t_ID) as Number_of_Teams,
SUM(NbrOfPeople) as Number_of_People
FROM tblEventDate
WHERE
eventID = 1
and eventDate >='09/01/2013'
GROUP BY loc_name, eventDate
ORDER BY eventDate, loc_name
的樣本數據集看起來像這樣
loc_name |eventDate |Number_of_Teams |Number_of_people
TCC |2013-09-04|12 |38
SMF |2013-09-04|8 |12
這個查詢,但是,只有讓我的團隊和個人的數字,其中EVENTID = 1。我需要能夠得到一個總和,其中EVENTID IN(1,2,3,4,5)(最多每人每天5次位置的事件),而不必包括EVENTID在GROUP BY子句。我有點難住。
我已經試過CASE WHEN表達式,但需要在EVENTID通過最終分離這樣的數據集的價值GROUP。
loc_name |eventDate |eventID |Number_of_Teams |Number_of_people
TCC |2013-09-04|1 |12 |38
TCC |2013-09-04|2 |9 |22
SMF |2013-09-04|1 |8 |12
SMF |2013-09-04|2 |4 |9
SMF |2013-09-04|3 |13 |31
我也嘗試了嵌套SELECT語句,但那是一個卑鄙的失敗。 :-)
最後,我需要一個數據集,看起來像:
loc_name |eventDate |Number_of_Teams |Number_of_people
TCC |2013-09-04|21 |60
SMF |2013-09-04|25 |52
注意,Number_of_Teams在所有事件的所有球隊在當日位置的完整計數和NUMBER_OF_PEOPLE是當天所有賽事中所有隊員的全部總和。
任何想法將不勝感激。
那麼'WHERE eventID IN(1,2,3,4,5)'而不是'WHERE eventID = 1'怎麼辦? –
哦,天啊。我在這個問題上回答了我自己的血腥問題。這個答案非常簡單,我一直在面對着我。 謝謝,胡安。 – crazybobcat
[談話的第一鴨(https://blog.codinghorror.com/rubber-duck-problem-solving/)爲贏!(你有沒有問過這個問題) – xQbert