30

我的表:table1

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

Access 上的 SQL 命令:

select count(*) from table1

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

我试图计算唯一名称:

预期输出: 4 行

select count(distinct Name) from table1

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

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

4

3 回答 3

49

试试这个

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

阅读内容以获取更多信息。

于 2012-08-09T09:21:58.807 回答
10

访问引擎不支持

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

你必须这样做:

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

它的一个小解决方法......你正在计算一个 DISTINCT 选择。

于 2012-08-09T09:27:36.347 回答
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 应该已经内置了它。

于 2019-04-16T15:48:33.317 回答