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

PostgreSQL part2 में एक एन्यूमरेशन कॉलम के आधार पर सभी पंक्तियों का योग कैसे करें?

पिछली Total . से पहले की गणना पंक्तियों से बाहर करने के लिए आप एक्सेसरी क्वेरी में प्राथमिक कुंजी का उपयोग कर सकते हैं। नया चर घोषित करें v_fnserial .एक fnserialखोजें दिए गए pcnum . के लिए 'कुल' के अंतिम अवसर वाली पंक्ति का और fnname और मान असाइन करें v_fnserial मुख्य क्वेरी में एक शर्त जोड़ें fnserial > v_fnserial .

मुख्य क्वेरी null returns आने पर आपको एक अपवाद उठाना चाहिए ।

IF NEW.timetype = 'Total' THEN
    SELECT fnserial INTO v_fnserial
    FROM mytable 
    WHERE timetype = 'Total' AND pcnum = NEW.pcnum AND fnname = NEW.fnname
    ORDER BY fnserial DESC LIMIT 1;

    SELECT SUM(timeelapse) FROM (
        SELECT DISTINCT ON (floor(timeindex)::int) floor(timeindex)::int timeindex, timeelapse 
        FROM mytable 
        WHERE fnserial > coalesce(v_fnserial, 0) AND pcnum = NEW.pcnum AND fnname = NEW.fnname AND timetype = 'Lap' 
        ORDER BY 1, 2 DESC) alias 
    INTO v_sumtimeelapse_fn;
    IF v_sumtimeelapse_fn NOTNULL THEN
        NEW.timeelapse := v_sumtimeelapse_fn;
    ELSE
        RAISE EXCEPTION USING MESSAGE = 'There is not any previous row...';
    END IF;
END IF;



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. हालिया रिलीज के साथ नई और विकसित पोस्टग्रेएसक्यूएल एंटरप्राइज़ सुविधाएं

  2. PostgreSQL में UPSERT (MERGE, INSERT ... ON DUPLICATE UPDATE) कैसे करें?

  3. .नेट पोस्टग्रेएसक्यूएल कनेक्शन स्ट्रिंग

  4. PgAdmin का उपयोग करके Postgresql तालिका डेटा निर्यात करें

  5. पायथन सरणियों से PostgreSQL में जल्दी से बदलने के लिए?