如何计算Access查询中字段中的唯一项?

时间:2012-08-09 09:16:20

标签: sql ms-access

我的表:table1

ID  Name  Family
1   A     AA
2   B     BB
3   A     AB
4   D     DD
5   E     EE
6   A     AC

Access上的SQL命令:

select count(*) from table1

输出: ------------>真
6行

我试图统计唯一的名字:

预期输出: 4行

select count(distinct Name) from table1

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

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

3 个答案:

答案 0 :(得分:39)

试试这个

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

阅读this了解详情。

答案 1 :(得分:7)

Access-Engine不支持

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

你必须这样做:

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

它有点解决方法......你在计算DISTINCT的选择。

答案 2 :(得分:1)

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

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

希望这会有所帮助,但不是我确定的最佳方法,Access应该已经内置了它。