2012-12-13 1 views
8

私はこのようになりますMS Access 2003でテーブルを持っている:私はそこにあるどのように多くの一意のIDを知りたいURLごと異なる値の数をカウントするクエリ?

 

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

。したがって、この場合の結果は次のようになります。

 

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

これはCOUNT DISTINCTに依存しているので、その場合の解決策が機能しない以外SQL query to count number of different valuesに非常によく似ていますが、それはAccessではサポートされていません。私は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

関連する問題