在同一个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
答
SELECT COUNT(NodeCount)AS计数,ActivationTime FROM级联 GROUP BY ActivationTime
答
它适用于我以下:
select activationtime, count(*) from cascading group by activationtime;
'COUNT(DISTINCT NodeID)' – Lamak
是的,我修好了。 – DVT