查询计算不同值的数量?

时间:2012-12-13 01:37:16

标签: sql ms-access count distinct ms-access-2003

我在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             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中不支持。我试图在Access中查找不同的计数方法,但我担心我不理解答案。

所以我猜这个问题可以概括为“如何在msaccess中模拟计数不同”。

如果有人能给我一个提示,我将不胜感激。

2 个答案:

答案 0 :(得分:5)

这应该适用于MS Access 2003(我刚刚测试过它):

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

在此处,您可以在子查询中获得不同的id和url,然后计算该结果。

答案 1 :(得分: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;