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

Postgresql कुल सरणी

array_agg का उपयोग करें:http://www.sqlfiddle.com/#!1/5099e/1

SELECT s.name,  array_agg(g.Mark) as marks        
FROM student s
LEFT JOIN Grade g ON g.Student_id = s.Id
GROUP BY s.Id

वैसे, यदि आप Postgres 9.1 का उपयोग कर रहे हैं, तो आपको SELECT to GROUP BY पर कॉलम दोहराने की आवश्यकता नहीं है, उदा। आपको GROUP BY पर छात्र का नाम दोहराने की आवश्यकता नहीं है। आप प्राथमिक कुंजी पर केवल ग्रुप बाय कर सकते हैं। यदि आप विद्यार्थी की प्राथमिक कुंजी हटाते हैं, तो आपको GROUP BY पर विद्यार्थी का नाम दोहराना होगा।

CREATE TABLE grade
    (Student_id int, Mark varchar(2));

INSERT INTO grade
    (Student_id, Mark)
VALUES
    (1, 'A'),
    (2, 'B'),
    (2, 'B+'),
    (3, 'C'),
    (3, 'A');


CREATE TABLE student
    (Id int primary key, Name varchar(5));

INSERT INTO student
    (Id, Name)
VALUES
    (1, 'John'),
    (2, 'David'),
    (3, 'Will');


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. कैसे Justify_hours () PostgreSQL में काम करता है

  2. Ubuntu 16.04 पर PostgreSQL डेटाबेस बनाना और हटाना

  3. आईडी के आधार पर लाखों पंक्तियों को हटाने का सबसे अच्छा तरीका

  4. जांचें कि पोस्टग्रेस सरणी में मान मौजूद है या नहीं

  5. एक गतिशील क्रॉसस्टैब क्वेरी निष्पादित करें