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

ऑर्डर बाय के साथ विभाजन में पंक्तियों की गणना करें

जब आप order by . जोड़ते हैं विंडो फ़ंक्शन के रूप में उपयोग किए जाने वाले समुच्चय के लिए जो कुल मिलाकर "रनिंग काउंट" (या जो भी कुल आप उपयोग करते हैं) में बदल जाता है।

count(*) निर्दिष्ट क्रम के आधार पर "वर्तमान एक" तक पंक्तियों की संख्या वापस कर देगा।

निम्न क्वेरी order by . के साथ उपयोग किए गए समुच्चय के लिए अलग-अलग परिणाम दिखाती है . sum() के साथ इसके बजाय count() यह देखना थोड़ा आसान है (मेरी राय में)।

with test (id, num, x) as (
  values 
    (1, 4, 1),
    (2, 4, 1),
    (3, 5, 2),
    (4, 6, 2)
)
select id, 
       num,
       x,
       count(*) over () as total_rows, 
       count(*) over (order by id) as rows_upto,
       count(*) over (partition by x order by id) as rows_per_x,
       sum(num) over (partition by x) as total_for_x,
       sum(num) over (order by id) as sum_upto,
       sum(num) over (partition by x order by id) as sum_for_x_upto
from test;

इसका परिणाम होगा:

id | num | x | total_rows | rows_upto | rows_per_x | total_for_x | sum_upto | sum_for_x_upto
---+-----+---+------------+-----------+------------+-------------+----------+---------------
 1 |   4 | 1 |          4 |         1 |          1 |           8 |        4 |              4
 2 |   4 | 1 |          4 |         2 |          2 |           8 |        8 |              8
 3 |   5 | 2 |          4 |         3 |          1 |          11 |       13 |              5
 4 |   6 | 2 |          4 |         4 |          2 |          11 |       19 |             11

पोस्टग्रेज मैनुअल में और भी उदाहरण हैं।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PostgreSQL अंतराल मान '2 दिन' को कैसे सम्मिलित करें

  2. SQLite से Postgres (Heroku) GROUP BY

  3. पायथन ई को स्ट्रिंग में जोड़ता है

  4. PostgreSQL सरणी को PHP सरणी में बदलें

  5. मैं Postgresql SCRAM प्रमाणीकरण समस्या को कैसे हल कर सकता हूं?