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

कॉलम द्वारा Oracle SQL समूह गिनती के साथ लेकिन केवल अगर कॉलम शून्य या 0 . है

यह यह करेगा:

SQL> select id, other_id, date_value, value, cnt from
  2   (
  3     SELECT id, other_id, date_value, value,
  4     case
  5       when other_id is null or other_id = '0' then 1
  6       else ROW_NUMBER() OVER (partition by other_id order BY Date_Value desc)
  7     end r,
  8     case
  9       when other_id is null or other_id = '0' then 1
 10       else count(*) OVER (partition by other_id)
 11     end cnt
 12     FROM some_table
 13   )
 14  where r = 1
 15  order by id;

        ID OTH DATE_VALUE               VALUE        CNT
---------- --- ------------------- ---------- ----------
         1 abc 2011-04-20 21:03:05        104          3
         3 xyz 2011-04-20 21:03:03        130          2
         5 0   2011-04-20 21:02:08         65          1
         7     2011-04-20 21:02:07        200          1
         8 0   2011-04-20 21:02:07        201          1
         9     2011-04-20 21:02:07        202          1

6 rows selected.

SQL>


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle DBMS_LOB के साथ समस्या का समाधान कैसे करें

  2. मेरी क्वेरी दूसरी बार तेज़ी से चलती है, मैं इसे कैसे रोकूँ?

  3. COLLATION () Oracle में फंक्शन

  4. प्रत्येक तालिका में एक स्तंभ के आधार पर किसी अन्य तालिका के डेटा के साथ एक तालिका में पंक्तियों को अपडेट करें

  5. ओरेकल जॉइन (एसक्यूएल जॉइन) क्या हैं?