我在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中模拟计数不同”。
如果有人能给我一个提示,我将不胜感激。
答案 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;