2014-09-03 79 views
-1

我有表:最大值,最小值成一個T-SQL查詢

create table dbo.call (
subscriber_name varchar(64)  not null 
, event_date  datetime not null 
, event_cnt  int  not null 
) 

需要編寫一個返回每個查詢訂戶最小的日期事件的數量是可能的,而最大的年月日時事件的數量很少,事件的數量也很少。

結果:

subscriber_name | min_date | max_event_cnt | max_date | min_event_cnt 
---------------------------------------------------------------------------------- 
Subscriber1  | 20091012 | 15 20061012 | 10   | 
---------------------------------------------------------------------------------- 
Subscriber2  | 20080301 | 20 20090513 | 8   | 
---------------------------------------------------------------------------------- 
+0

可能重複的[T-SQL得到的每一天的最低和最高值(http://stackoverflow.com/questions/ 11283749/t-sql-get-min-and-max-value-for-every) – 2014-09-03 18:46:40

回答

0

嘗試以下方法:

SELECT 
    t1.subscriber_name, 
    min_date, 
    max_event_cnt, 
    max_date, 
    min_event_cnt 
FROM 
(
    SELECT 
    subscriber_name, 
    MIN(event_date) AS min_date, 
    MAX(event_cnt) AS max_event_cnt 
    FROM 
    dbo.call 
    GROUP BY 
    subcriber_name 
) t1 
JOIN 
(
    SELECT 
    subscriber_name, 
    MAX(event_date) AS max_date, 
    MIN(event_cnt) AS min_event_cnt 
    FROM 
    dbo.call 
    GROUP BY 
    subcriber_name 
) t2 
ON t1.subscriber_name = t2.subscriber_name 
+0

對不起,我原本沒有正確寫出問題。 正確的問題: 需要編寫一個查詢,以便爲每個訂閱者返回事件計數最大時的日期和事件計數最小時的最大日期以及事件數。 – 2014-09-03 19:42:43