8

我在 MS Access 2003 中有一个如下所示的表:

    *网址编号*
    example.com 红色
    example.com 蓝色
    example.com 蓝色
    other.com 红色
    other.com 橙色
    more.com 蓝色

对于每个 URL,我想知道有多少个唯一 ID。所以在这种情况下,结果应该是:

    *不同id的url计数*
    example.com 2(因为红色和蓝色是唯一的值)
    其他.com 2
    更多.com 1

这与 SQL 查询非常相似,用于计算不同值的数量,只是在这种情况下解决方案不起作用,因为它依赖于COUNT DISTINCT,但 Access 不支持。我试图在 Access 中查找不同计数的替代方法,但恐怕我不明白答案。

所以我猜这个问题可以概括为“如何在msaccess中模拟count distinct”。

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

4

2 回答 2

5

这应该在 MS Access 2003 中工作(我刚刚测试过):

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

在这种情况下,您会在子查询中获得不同的 id 和 url,然后计算该结果。

于 2012-12-13T01:47:51.720 回答
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;
于 2012-12-13T01:55:34.970 回答