[英]Access SQL with count function for multiple fields
所有。 我的桌子看起來像
Team1 Team2 result
a b win
a c tie
b d loss
c a win
d c win
我想輸出team1結果統計信息,例如
Team1 win loss tie
a 4 2 1
b 2 2 3
我可以使用
SELECT TEAM1,Count(Result='win') as Win_Number
From GAMES
Where Result='win'
Group by TEAM1
但是我應該增加產量損失和約束力嗎? 使用聯接?
更新:使用“ iif sum”命令解決了該問題,請參閱XQbert的帖子。 非常感謝。
這是一種方法
我一直忘記在MSAccess的內聯選擇中無法使用的情況
因此,這將不起作用:
SELECT [Home team],
sum(CASE WHEN result='win' THEN 1 else 0 END) as Win,
sum(CASE WHEN result='loss' THEN 1 else 0 END) as Loss,
sum(CASE WHEN result='tie' THEN 1 else 0 END) as Tie
FROM GAMES
GROUP BY [Home team]
但這可能:
SELECT [Home team]
sum(iif(result='win', 1,0)) as Win,
sum(iif(result='loss', 1,0)) as Loss,
sum(iif(result='tie', 1,0)) as Tie,
FROM GAMES
GROUP BY [Home team]
這基本上表示評估按主隊分組的表中的每個結果,如果結果是贏,輸或平局,則將值設置為1,否則將其設置為0。然后將求和給定主隊的所有結果。 由於每個結果都是贏球或平局,因此在贏球,平局或平局中將出現1,但只有這三個中的一個; 盡管結果不算是輸贏或平局,也可能什么也沒有。盡管我支持下面的交叉表查詢語句。
所以數據在總和之前看起來像這樣
Team1 win loss tie
a 1 0 0
a 1 0 0
a 1 0 0
a 1 0 0
a 0 1 0
a 0 1 0
a 0 0 1
b 1 0 0
b 1 0 0
b 0 1 0
b 0 1 0
b 0 0 1
b 0 0 1
b 0 0 1
然后總和會給你...
Team1 win loss tie
a 4 2 1
b 2 2 3
Access具有一個很好的功能,稱為交叉表查詢。 將查詢類型更改為此並嘗試使用它。 這是一個很好的功能,訪問權限沒有很多大型數據庫! IT允許您基於行的值(在您的情況下為結果)創建列,然后按行進行匯總(計算給定團隊出現的輸贏平局次數)
示例: https : //support.office.com/en-us/article/Make-summary-data-easier-to-read-by-using-a-crosstab-query-8465b89c-2ff2-4cc8-ba60-2cd8484667e8
如何: http : //office.microsoft.com/zh-cn/access-help/create-a-select-or-crosstab-query-mdb-HP005187965.aspx
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.