Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

समूह का उपयोग करके तालिका से अंतिम रिकॉर्ड का चयन करें

मानना कि प्रारंभ और समाप्ति तिथियां हमेशा उच्चतम मान होंगी तो आपको GROUP BY से कुछ कॉलम छोड़ने होंगे (GROUP BY . में सभी कॉलम वाले DISTINCT . का उपयोग करने जैसा है ) और दूसरे कॉलम पर एक समग्र फ़ंक्शन का उपयोग करें:

SELECT UserId,
       MAX(StartDate) AS StartDate,
       MAX(EndDate) AS EndDate
FROM usersworktime
GROUP BY UserId;

अन्यथा, यदि ऐसा नहीं है, तो आप CTE और ROW_NUMBER का उपयोग कर सकते हैं :

WITH CTE AS(
    SELECT UserID,
           StartDate,
           EndDate,
           ROW_NUMBER() OVER (PARTITION BY UserID ORDER BY UsersWordTimeID DESC) AS RN
    FROM usersworktime)
SELECT UserID,
       StartDate,
       EndDate
FROM CTE
WHERE RN = 1;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL सर्वर (T-SQL) में FORMAT () फ़ंक्शन कैसे काम करता है

  2. SQL सर्वर (T-SQL) में कॉलम का आकार कैसे बदलें

  3. SQL सर्वर संग्रहीत कार्यविधि वापसी कोड विषमता

  4. दिनांक और समय को एक डेटाटाइम में मिलाना (संबद्ध करना)

  5. तालिका का स्कीमा नाम कैसे प्राप्त करें?