簡體   English   中英

如何使用SQL查詢創建排名前25的記錄?

[英]How to get Top 25 records order by createdon using SQL query?

我有兩個表像updatetext和用戶我想要從updatetext頂部不同的記錄..表用戶有唯一的記錄相關的用戶信息和updatetext有多個updatetext記錄...我想從updatetext表獲得最新的最新更新..我怎么樣可以得到?

Users Table
1) userid
2) username
3) password
4) createdon

UpdateText Table
1) updatetextID
2) userid
3) updateScrap
4) createdon
3) location

UPDATETEXT

updatetextID    userid  updateScrap     Createdon
     11      535     yes good test      2/23/2011 9:59
     12      540    udpate sample       2/23/2011 9:58
     13       44    Absas               2/22/2011 12:30
     14       20    test text 123       2/22/2011 12:24
     15      540    hi how are you?     2/22/2011 12:00
     16      535    Hi r u there?       2/22/2011 12:30
     17      540    welcome back        2/22/2011 10:23

用戶

userid  username    password    
535 abhi        
540 shankar     
44  dhaval      
20  john        

我想從UpdateText表中獲取最佳創建記錄並從Users表中獲取用戶名和密碼..請幫助我。

這是前25名,每位用戶的最新更新。 我猜這就是你的意思

;WITH CTE AS
(
  SELECT
     *,
     ROW_NUMBER() OVER (PARTITION BY userid ORDER BY createdon) AS RankNum
  FROM
     [UpdateText]
)
SELECT TOP 25
   *
FROM
   CTE 
   JOIN
   Users U ON CTE.userid  = U.userid 
WHERE
   RankNum = 1
ORDER BY
   CTE.createdon
SELECT  TOP 25 
        ut.*
        ,u.username
        ,u.password
FROM    [UpdateText] ut
JOIN    Users u ON  ut.userid = u.userid
JOIN    (   SELECT  MAX(ut2.createdon) as maxcreatedon
                    ,ut2.userid
            FROM    [UpdateText] ut2
            GROUP BY ut2.userid
        ) x ON x.maxcreatedon = ut.createdon
            AND x.userid = ut.userid
ORDER BY ut.createdon DESC

也許你正在尋找這樣的東西?

不確定我是否完全理解,但嘗試類似:

SELECT * FROM UpdateText 
   INNER JOIN Users ON UpdateText.userid = Users.userid
ORDER BY UpdateText.createdon DESC LIMIT 25

暫無
暫無

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

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