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

एकाधिक रिकॉर्ड दिए गए विभिन्न अधिकतम मूल्य के आधार पर अधिकतम मूल्य प्राप्त करने के लिए SQL क्वेरी

SELECT
  MAX(id) id,
  po_nbr
FROM
  temp
GROUP BY
  po_nbr

संबंधित तिथि प्राप्त करने के लिए, आप कर सकते हैं (सावधान रहें, इसका अर्थ एक अनुक्रमिक आईडी है):

SELECT
  temp.id,
  temp.po_nbr,
  temp.crt_ts
FROM
  temp
  INNER JOIN (
    SELECT MAX(id) id FROM temp GROUP BY po_nbr
  ) latest ON latest.id = temp.id

अनुक्रमिक आईडी के बिना, यह होगा:

SELECT
  MAX(temp.id) id,
  temp.po_nbr,
  temp.crt_ts
FROM
  temp INNER JOIN (
    SELECT   MAX(crt_ts) crt_ts, po_nbr 
    FROM     temp i
    GROUP BY po_nbr
  ) latest ON latest.crt_ts = temp.crt_ts AND latest.po_nbr = temp.po_nbr
GROUP BY
  temp.po_nbr,
  temp.crt_ts

GROUP BY यदि प्रति po_nbr . में कोई दो समान तिथियां नहीं होने की गारंटी है, तो इसे छोड़ा जा सकता है समूह।

crt_ts पर अनुक्रमणिका और po_nbr अंतिम क्वेरी में मदद करें, एक संयुक्त अनुक्रमणिका बनाना सबसे अच्छा होगा।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. एसक्यूएल सर्वर 2008:संग्रहित प्रक्रिया में अजीब त्रुटि

  2. SQL सर्वर में चेक बाधा को सक्षम करते समय आपको NOCHECK के बारे में क्या पता होना चाहिए

  3. राउंड .NET डेटटाइम मिलीसेकंड, इसलिए यह SQL सर्वर मिलीसेकंड में फिट हो सकता है

  4. SQL सर्वर 2008 से SQL सर्वर कॉम्पैक्ट संस्करण?

  5. SQL सर्वर में बनाने या बदलने के लिए आप क्या करते हैं?