Raymond
Raymond

Reputation: 140

query to count number of different values?

I have a table in MS Access 2003 that looks like this:


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

For each URL I want to know how many unique id there are. so in this case the result should be:


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

This is very similar to SQL query to count number of different values except the solution in that case does not work because it relies on COUNT DISTINCT, but that is not supported in Access. I have tried to look up alternative ways of doing count distinct in Access but I'm afraid I don't understand the answers.

So I guess this problem can be summarized as "how to simulate count distinct in msaccess".

I would greatly appreciate it if someone can give me a hint.

Upvotes: 8

Views: 490

Answers (2)

DWright
DWright

Reputation: 9500

Here is another way of doing it without using the distinct keyword. (Although it looks like later versions of access would support it):

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;

Upvotes: 1

Taryn
Taryn

Reputation: 247860

This should work in MS Access 2003 (I just tested it):

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

In this you get the distinct id and url in a subquery and then you count that result.

Upvotes: 5

Related Questions