sql >> Database teknologi >  >> RDS >> PostgreSQL

PostgreSQL - får første række til at blive vist som alt af andre rækker

Dette er nu muligt i version 9.5 af Postgres :

PostgreSQL 9.5-skema

CREATE TABLE basket(fruits text, a integer, b integer, c integer);
CREATE TABLE
INSERT INTO basket(fruits, a, b, c) values('apples', 1, 1, 1),
                                      ('apples', 0, 1, 2),
                                      ('bananas', 1, 1, 2),
                                      ('oranges', 1, 1, 1);
 

Forespørgsel

SELECT coalesce(fruits,'total'), sum(a) a, sum(b) b, sum(c) c
FROM basket
GROUP BY ROLLUP((fruits))
 

Resultater

fruits | a | b | c ---------+---+---+--- apples | 1 | 2 | 3 bananas | 1 | 1 | 2 oranges | 1 | 1 | 1 total | 3 | 4 | 6

Denne ROLLUP svarer til at bruge et udtryk med GROUPING SETS :

SELECT fruits, sum(a) a, sum(b) b, sum(c) c
FROM basket
GROUP BY GROUPING SETS (fruits, ())
 

Hver underliste i GROUPING SETS tolkes på samme måde, som om det var direkte i GROUP BY-sætningen.



  1. MySQL-lagring af flydere

  2. Hvordan eksporteres data fra SQL Server 2008.2010 i DML (SQL script)?

  3. Læs Committed Snapshot Isolation

  4. Udfør native sql med hibernate