2013-04-11 130 views
0

這是將每個查詢記錄在緩存中的表結構。如何計算不同範圍和連續範圍

SequenceId CacheInstance QueryCondition 
------------------------------------------ 
1   100    'x=1 ' 
2   100    'x=1' 
3   100    'y=a' 
4   100    'x=1' 
5   200    'x=1' 
5   200    'x=1' 

是否有一個簡單的語句來獲得以下「不同計數」?

CacheInstance QueryCondition distinctcount 
------------------------------------------- 
100   'x=1'    2 
100   'y=a'    1 
200   'x=1'    1 

如果'x = 1'連續出現,則將它計爲相同的一個。但是,如果一個不同的查詢條件後發生了,重複計數會增加1

回答

2

通過

select CacheInstance,QueryCondition ,COUNT(QueryCondition) as distinctcount from YourtableName group by CacheInstance,QueryCondition 
0

使用組對那些兩列試試這個...使用GROUP BY

CREATE TABLE Cache 
(
    SequenceId int, 
    CacheInstance int, 
    QueryCondition nvarchar(20) 
) 

SELECT CacheInstance, QueryCondition, COUNT(QueryCondition) 
FROM Cache 
GROUP BY CacheInstance, QueryCondition