2012-12-13 58 views
8

我在MS Access 2003中,看起來像這樣的表:查詢來統計不同值的數量?

 

    *url   id* 
    example.com red 
    example.com blue 
    example.com blue 
    other.com  red 
    other.com  orange 
    more.com  blue 

因爲我想知道有多少唯一的ID有每個URL。所以在這種情況下,結果應該是:

 

    *url    count of distinct id* 
    example.com   2   (because red and blue are the only values) 
    other.com   2 
    more.com    1 

這是非常相似的,除了SQL query to count number of different values在這種情況下不工作,因爲它依賴於COUNT DISTINCT的解決方案,但是未在訪問支持。我試圖查找替代方法在Access中進行計數,但我恐怕我不明白答案。

所以我想這個問題可以概括爲「如何在msaccess中模擬不同的計數」。

如果有人能給我一個提示,我將不勝感激。

+1

+1對於一個好措辭的問題(並搜索檔案的第一個答案:)。 – Leigh

+0

好問題,我正在努力解決這個問題。 –

回答

5

這應該在MS Access 2003中工作(我只是測試它):

SELECT url, count(id) as CountOfId 
FROM 
(
    SELECT distinct id, url 
    FROM yourtable 
) x 
GROUP BY url 

在此你在一個子查詢中的獨特ID和URL,然後你算這一結果。

+0

非常感謝,確實有效。我刪除了我認爲是一個錯字(?)的「x」,它確實做得很好。我感謝您的幫助。 – Raymond

+1

x是子查詢的別名。我習慣於需要它的SQL服務器,但是它在訪問時使用了別名 – Taryn

1

這是另一種不使用distinct關鍵字的方法。 (雖然它看起來像後續版本的訪問將支持它):

SELECT t.url, Count(*) AS distinct_id_count 
FROM 
(
    SELECT url 
    FROM *source_table_name_here* 
    GROUP BY url, id 
) AS t 
GROUP BY t.url 
ORDER BY COUNT(*) DESC, t.url; 
+0

謝謝,如果我對以前的解決方案有任何問題,我會嘗試這個。 – Raymond