【问题标题】:query to count number of different values?查询计算不同值的数量?
【发布时间】:2012-11-30 20:33:24
【问题描述】:

我在 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 query to count number of different values 非常相似,只是在这种情况下解决方案不起作用,因为它依赖于COUNT DISTINCT,但在 Access 中不受支持。我试图在 Access 中查找不同计数的替代方法,但恐怕我不明白答案。

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

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

【问题讨论】:

  • +1 对于一个措辞恰当的问题(并首先在档案中搜索答案!:)。
  • 好问题,我一直在努力解决这个确切的问题。

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


【解决方案1】:

这应该可以在 MS Access 2003 中使用(我刚刚测试过):

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

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

【讨论】:

  • 非常感谢,确实有效。我删除了我认为是错字(?)的“x”,它做得很好。感谢您的帮助。
  • x 是子查询的别名。我习惯了需要它的 SQL 服务器,但它确实可以使用别名访问
【解决方案2】:

这是另一种不使用 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;

【讨论】:

  • 谢谢,如果我对以前的解决方案有任何问题,我会试试这个。
猜你喜欢
  • 1970-01-01
  • 2021-02-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-20
  • 1970-01-01
  • 2014-08-10
相关资源
最近更新 更多