說我有一個表,如下所示:SQL COUNT DISTINCT用於在MS Access每個ID
id category app
------------------------
1 game angry birds
1 game happy dogs
2 productivity calculator
3 health fitness tracker
1 game angry birds
2 game snake
該表顯示每個用戶打開一段時間的應用程序。例如,假設您每次在手機上打開應用時都記下了這些內容。現在爲100人重複這一點。如上所述,所有這些數據都存儲在一個表中。
我想弄清楚如何計算每個人在特定類別內使用多少個不同的應用程序。例如,對於「遊戲」類別,我希望:
id num_apps
------------
1 2
2 1
3 0
我明白,一個人不能使用COUNT在MS-訪問(DISTINCT ..),並已經看到如何實現這個其他職位 - 我儘管如此,仍然無法將其應用於這種情況。
我曾嘗試以下,我相信給我的是如何在一個特定類別使用過的每個應用程序的人非重複計數:
SELECT COUNT(*)
FROM
(SELECT DISTINCT id AS gamer_id
FROM UseList
WHERE category = 'game')
AS b, UseList AS ul
WHERE b.gamer_id = ul.id AND category = 'game'
GROUP BY b.gamer_id;
我怎麼能適用於不同的搜索呢?我想過以各種方式遍歷每個gamer_id
,但這似乎並不太直接。 謝謝!
從WHERE刪除遊戲條件。相反,做條件聚合。 – jarlh
您的表格有一些列,但查詢使用其他列。 – jarlh
@jarlh哪些列是不同的?不知道如何做條件聚合,但會查找它,謝謝 – Windmill