sql >> Database >  >> RDS >> PostgreSQL

PostgreSQL - eerste rij weergeven als totaal aantal andere rijen

Dit is nu mogelijk in versie 9.5 van Postgres :

PostgreSQL 9.5-schema

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);

Zoekopdracht

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

Resultaten

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

Deze ROLLUP is gelijk aan het gebruik van een uitdrukking met GROUPING SETS :

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

Elke sublijst in de GROUPING SETS wordt op dezelfde manier geïnterpreteerd alsof het rechtstreeks in de GROUP BY-clausule zou zijn.



  1. SQL-query om te controleren of een naam begint en eindigt met een klinker

  2. Meerdere Hibernate-reeksgeneratoren voor één entiteit met PostgreSQL

  3. Haal gegevens op uit de knooppuntentabel in Yii2

  4. Hoe de ingebouwde stopwoordenlijst overschrijven door een door de gebruiker gedefinieerde lijst voor full-text stopwoorden in MySQL op LAMP?