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

पंक्तिवार अधिकतम मान (n कॉलम का) - सुरुचिपूर्ण दृष्टिकोण

PostgreSQL में आप GREATEST . का उपयोग कर सकते हैं अभिव्यक्ति:

SELECT GREATEST(date_1, date_2, date_3, date_4, date_5, date_6) AS max_date
...

चूंकि यह मानक SQL नहीं है, यह शायद अन्य डेटाबेस में काम नहीं करेगा।

किसी भी दर पर, आप दूसरे WHEN . के बाद से, तुलनाओं की संख्या को कम कर सकते हैं CASE . की अभिव्यक्ति कथन का परीक्षण केवल तभी किया जाता है जब पहला TRUE नहीं था :

CASE
   WHEN date_1 >= date_2 AND date_1 >= date_3 AND date_1 >= date_4 AND date_1 >= date_5 AND date_1 >= date_6
   THEN date_1
   WHEN date_2 >= date_3 AND date_2 >= date_4 AND date_2 >= date_5 AND date_2 >= date_6
   THEN date_2
   WHEN date_3 >= date_4 AND date_3 >= date_5 AND date_3 >= date_6
   THEN date_3
   WHEN date_4 >= date_5 AND date_4 >= date_6
   THEN date_4
   WHEN date_5 >= date_6
   THEN date_5
   ELSE date_6
END

मुझे नहीं पता कि क्या आप इसे अधिक सुरुचिपूर्ण मानते हैं, लेकिन इसके बजाय AND खंड आप ALL का भी उपयोग कर सकते हैं VALUES . के साथ अभिव्यक्ति:

WHEN date_1 >= ALL (VALUES (date_2), (date_3), (date_4), (date_5), (date_6))
THEN date_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. रेल में pg_attribute तालिका पर धीमी अंतर्निहित क्वेरी को कैसे ठीक करें

  2. एक कॉलम में एक से अधिक पंक्ति मान के साथ एक से अधिक पंक्तियों को मर्ज करें

  3. टाइमज़ोन स्टोर करने के लिए उपयुक्त डेटा प्रकार क्या है?

  4. मैं क्वेरी निष्पादन समय के psycopg2 लॉगिंग कैसे प्राप्त करूं?

  5. मणि स्थापित पीजी --with-pg-config काम करता है, बंडल विफल रहता है