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

PostgreSQL राज्य के साथ कई पंक्तियों के माध्यम से पुनरावृति/कार्य करने के लिए कार्य करता है

खैर, यह शायद ही सुंदर है लेकिन यह कार्यात्मक है:

select sum(amt) as session_val
from (
  select segment,
         max(segment) over() as max_segment,
         amt
  from (
    select sum(case when atype = 'SET' then 1 else 0 end)
               over(order by "order") as segment,
           amt
    from command
    where session = 2
  ) x
) x
where segment = max_segment

हालांकि PL/pgsql में यह काफी सरल है:

create function session_val(session int) returns int stable strict
language plpgsql as $$
declare
  value int := 0;
  rec command%rowtype;
begin
  for rec in select * from command where command.session = session_val.session loop
    if rec.atype = 'SET' then
      value := rec.amt;
    elsif rec.atype = 'ADD' then
      value := value + rec.amt;
    end if;
  end loop;
  return value;
end $$;

तो अपना चयन करें, मुझे लगता है।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ubuntu 16.04 पर PostgreSQL डेटाबेस बनाना और हटाना

  2. लापता मूल्यों के साथ टेबल कैसे आयात करें?

  3. मैं ऑटोइनक्रिकमेंटिंग प्राथमिक कुंजी के साथ आर से पोस्टग्रेएसक्यूएल टेबल पर डेटा कैसे लिखूं?

  4. केस स्टेटमेंट को एक इंसर्ट में पोस्टग्रेज करता है

  5. एएमडी, इंटेल और पोस्टग्रेएसक्यूएल