【问题标题】:How do I count unique items in field in Access query?如何计算 Access 查询中字段中的唯一项?
【发布时间】:2012-08-06 11:43:43
【问题描述】:

我的表:table1

ID 姓名 家族
1 个 AA
2 B BB
3 A AB
4 天
5 EE
6 A 交流电

Access 上的 SQL 命令:

select count(*) from table1

输出: ------------> True
6 行

我尝试计算唯一名称:

预期输出: 4 行

select count(distinct Name) from table1

访问输出: ------------> 错误

我需要对查询进行哪些更改?

【问题讨论】:

    标签: sql ms-access


    【解决方案1】:

    试试这个

    SELECT Count(*) AS N
    FROM
    (SELECT DISTINCT Name FROM table1) AS T;
    

    阅读this了解更多信息。

    【讨论】:

    • 我认为即使是这个 SELECT count(*) FROM (SELECT DISTINCT Name FROM table1);会的。
    • 是的,我不确定,但拥有别名总是更好,因此别名可用于获取其他列,但在这种特殊情况下,如果“Access 支持该语法”,您是对的当然。
    • 很抱歉,我们找不到您要查找的页面。链接失效了
    • @SubirKumarSao 这对我有用。简单而甜蜜。
    【解决方案2】:

    Access-Engine 不支持

    SELECT count(DISTINCT....) FROM ...
    

    你必须这样做:

    SELECT count(*) 
    FROM
    (SELECT DISTINCT Name FROM table1)
    

    这是一个小解决方法...您正在计算 DISTINCT 选择。

    【讨论】:

      【解决方案3】:

      对我来说使用的一个快速技巧是使用查找重复查询 SQL 并将Having 表达式中的 1 更改为 0。像这样:

      SELECT COUNT([UniqueField]) AS DistinctCNT FROM
      (
        SELECT First([FieldName]) AS [UniqueField]
        FROM TableName
        GROUP BY [FieldName]
        HAVING (((Count([FieldName]))>0))
      );
      

      希望这会有所帮助,而不是我确定的最佳方式,而且 Access 应该已内置此功能。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-04-28
        • 2022-01-20
        • 1970-01-01
        • 1970-01-01
        • 2015-09-16
        • 1970-01-01
        • 2021-12-21
        相关资源
        最近更新 更多