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

अतिरिक्त (विशिष्ट) फ़िल्टर वाले कुल कॉलम

कुल FILTER खंड पोस्टग्रेज में 9.4 या नया छोटा और तेज़ है:

SELECT u.name
     , count(*) FILTER (WHERE g.winner_id  > 0)    AS played
     , count(*) FILTER (WHERE g.winner_id  = u.id) AS won
     , count(*) FILTER (WHERE g.winner_id <> u.id) AS lost
FROM   games g
JOIN   users u ON u.id IN (g.player_1_id, g.player_2_id)
GROUP  BY u.name;
  • मैनुअल
  • विकी पोस्ट करता है
  • Depesz ब्लॉग पोस्ट

पोस्टग्रेज में 9.3 (या कोई भी version) यह अभी भी नेस्टेड उप-चयनों या CASE . से छोटा और तेज़ है भाव:

SELECT u.name
     , count(g.winner_id  > 0 OR NULL)    AS played
     , count(g.winner_id  = u.id OR NULL) AS won
     , count(g.winner_id <> u.id OR NULL) AS lost
FROM   games g
JOIN   users u ON u.id IN (g.player_1_id, g.player_2_id)
GROUP  BY u.name;

विवरण:

  • पूर्ण प्रदर्शन के लिए, SUM तेज़ है या COUNT?


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PL/pgSQL में '$$' का उपयोग किस लिए किया जाता है?

  2. PostgreSQL स्ट्रीमिंग बनाम तार्किक प्रतिकृति – तुलना

  3. चालाक 2.0 जेनेरिक सीआरयूडी संचालन

  4. Postgresql - DB से कुछ ऑटो कनेक्शन के कारण डेटाबेस को छोड़ने में असमर्थ

  5. विंडोज़ में पोस्टग्रेस्क्ल श्रवण बंदरगाह कैसे बदलें?