簡體   English   中英

選擇行,其中分組數據的計數= 2

[英]Select rows where count of grouped data =2

我必須得到用戶,它們在給定日期前后至少兩個星期出現。 所以可以說我有數據:

 userName    date  week 
 user1  27 10 2011  44
 user1  27 10 2011  44 
 user1  27 10 2011  44 
 user2  21 04 2011  17 
 user2  29 04 2011  17 
 user2  02 05 2011  19 
 user2  03 05 2011  19 
 user2  16 05 2011  21
 user2  23 05 2011  22 
 user3  06 01 2011  24 
 user3  14 05 2011  25 
 user3  20 05 2011  26 
 user3  27 05 2011  27

並且我需要先按用戶和星期將結果分組,然后我需要計算用戶之前(假設第20周)和之后出現了幾周,然后僅選擇在前后至少兩周出現的用戶,所以就我而言,我會得到結果

user2 

不幸的是,由於數據庫限制,我無法創建viewTable。 這個查詢只給我結果的第一部分,按用戶和星期分組的數據,但是我不知道如何計算分組數據:

SELECT   username, 
         min(a.actionDate) as date, 
         datepart(wk,a.actionDate) as week 
FROM     Table1 a           
GROUP BY username , 
         datepart(wk,amd.actionDate) 

謝謝你的幫助。

要返回具有日期記錄至少在指定日期之前兩周和之后兩周的用戶,請嘗試:

select username
from Table1
group by username
having datediff(wk, min(actiondate), @date) >= 2 and 
       datediff(wk, @date, max(actiondate)) >= 2

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM