2017-05-18 71 views
0

期間柱會議的狀況的局部部分我已經如下所示,其具有三列的表:彙總GROUPBY

ResponseId | ResponseType | ResponseDateTime 

    1   Complete  2017-04-10 08:13:00.0300000 
    2   Complete  2017-03-17 05:21:00.5800000 
    3   Partial  2017-02-07 16:38:14.3800000 
    4   Not Started 2017-04-12 05:38:33.8366667 

我想要的表要被聚合,使得我得到的響應的總數與LatestReponseTime(即MAX的ResponseDateTime)計算行ReponseType = Complete

所得表的樣子下面: -

NumberOfResponses | LatestReponseTime 

    4    2017-04-10 08:13:00.0300000 

如可以看到的,所述LatestResponseTime包含2017年4月10日08 MAX:13:00.0300000和2017年3月17日5點21: 00.5800000(時間戳ResponseType = Complete)。

任何人都可以幫助我實現這個T-SQL或MySQL命令?

回答

1

使用條件彙總:

SELECT 
    COUNT(*) as NumberOfResponses, 
    MAX(CASE WHEN ResponseType = 'Complete' THEN ResponseDateTime END) AS LatestReponseTime 
FROM mytable; 
+0

如果整個ResponseDateTime欄爲空(NULL)或沒有擁有的responseType = '完整' 的任何行會發生什麼? – avinash

+0

然後LatestReponseTime爲空。我們還能期待什麼? –

1

使用情況

select count(ResponseId), max(case when ResponseType='Complete' then 
ResponseDateTime end) from TableName;