1

我有一个名为 Order(Id,Number,Date) 的表。“Id”和“Number”是主键。

表顺序

Id Number Date
0   1     1995   
0   2     1995        
0   3     1995   
1   1     1999   
1   2     1999   
2   1     2001

我需要行数但没有重复项(在此示例中:3)我知道“group by Id”会给我:Id(0,1,2)但我无法在 group by 之后计算它。

4

3 回答 3

1

检查此SQL Fiddle 工作代码,它会返回您要查找的内容。它分组Number,然后计算总行数,在本例中为 3 行。

编辑

抱歉,我看到你是按 ID 计算的,修改了代码。然而,相同的逻辑只是不同的列。

SELECT COUNT(*) Rows_count
FROM (
      SELECT COUNT([Id]) count_rows
        FROM tOrder
       GROUP BY [Id]) AS T1

结果:

ROWS_COUNT
   3

编辑

这段代码确实也有效,而且更短。如果您需要在HAVING之后添加一个子句GROUP BY,以防您想要计算某些特定值,我的前一个会有所帮助。

SELECT COUNT(DISTINCT id) FROM [Order]
于 2013-05-26T22:18:50.743 回答
0
select count(distinct id) from order
于 2013-05-26T22:18:09.273 回答
0

尝试这个 :

从订单中选择 DISTINCT COUNT(Id)

于 2013-05-26T22:27:14.037 回答