在同一个SQL Server查询

问题描述:

我有一个SQL Server表级联用以下结构使用COUNT和DISTINCT:在同一个SQL Server查询

+----+--------+----------------+   +----------------+-----------+ 
| ID | NodeID | ActivationTime |   | ActivationTime | NodeCount | 
+----+--------+----------------+   +----------------+-----------+ 
| 1 | 448 | 1    |   | 1    | 1   | 
| 2 | 195 | 2    |   | 2    | 3   | 
| 3 | 504 | 2    |   | 3    | 6   | 
| 4 | 609 | 2    |   | ...   | ...  | 
| 5 | 15  | 3    |   | ...   | ...  | 
| 6 | 31  | 3    | =>  | ...   | ...  | 
| 7 | 56  | 3    |   | ...   | ...  | 
| 8 | 461 | 3    |   | ...   | ...  | 
| 9 | 585 | 3    |   | ...   | ...  | 
| 10 | 345 | 3    |   | ...   | ...  | 
| .. | ... | ...   |   | ...   | ...  | 
+----+--------+----------------+   +----------------+-----------+ 

我需要计算的时间节点ID是出现在表中DISTINCT ActivationTime数。例如,在ActivationTime 1处有1个节点,在ActivationTime 2处有3个节点,在ActivationTime 3处有6个节点,依此类推。所需的结果显示在右侧。

我尝试以下不成功的查询:

SELECT DISTINCT(ActivationTime) FROM CASCADING WHERE ActivationTIme IN 
(SELECT DISTINCT(COUNT(ActivationTime)) AS NodeCount FROM CASCADING 
GROUP BY ActivationTime) 

使用COUNT(DISTINCT节点ID)和GROUP BY ActivationTime

SELECT ActivationTime, COUNT(DISTINCT NodeID) NumberOfID 
FROM 
    CASCADING 
GROUP BY ActivationTime 
+2

'COUNT(DISTINCT NodeID)' – Lamak

+0

是的,我修好了。 – DVT

SELECT COUNT(NodeCount)AS计数,ActivationTime FROM级联 GROUP BY ActivationTime

它适用于我以下:

select activationtime, count(*) from cascading group by activationtime;