2016-08-18 72 views
1

Table with unsorted dataSQL如何分組數據一起

與未排序的數據表顯示我得到現在的數據。我需要做的是將用戶名分組在一起。所以它會看起來像「帶有分類數據的表」。如果我的問題不清楚,請告訴我。我不擅長解釋事情。

Table with sorted data

+1

顯示您當前的查詢的樣子。應該能夠使用:ORDER BY UserName,isNull(loggedOn,somedate) – DaniDev

+0

查看您的數據 - 用戶在註銷一次之前可以多次登錄。那是對的嗎? – Nicarus

+0

是的,這是正確的@Nicarus – Jon

回答

0

根據您的意見,看來用戶可以多次登錄未註銷。下面的查詢將在每次登錄後爲每個用戶抓取下一個最快的註銷時間。如果沒有會話ID,似乎沒有任何方法可以保證哪個註銷時間與每個登錄關聯。

Select UserName, 
    LoggedOn, 
    (select min(LoggedOut) from dbo.MyTable T1 where T.UserName = T1.UserName and T.LoggedOn <= T1.LoggedOut) 
from dbo.MyTable T 
where LoggedOn is not null 
0

在Sql數據總是顯示沒有組,但應用程序或報表使用這個重複的字段作爲組,就像你喜歡做的一樣。

+3

[如何回答](http://stackoverflow.com/help/how-to-answer)可以幫助你寫出答案將被upvoted。 – zhon

0

這會給你你想要的,我相信。如果您不關心訂單,除了將用戶名分組在一起外,您可以按照Order by子句取消「,LoggedOn」。您還可以將其他參數放在第一個按字段排序,它會先按用戶名順序排列結果集,然後按登錄,然後按x,然後按y ..

希望這會有所幫助。

select UserName, LoggedOn, LoggedOut 
from dbo.Table 
Order by Username, LoggedOn