PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

PostgreSQL - wyświetlanie pierwszego wiersza jako sumy pozostałych wierszy

Jest to teraz możliwe w wersji 9.5 Postgresa :

Schemat PostgreSQL 9.5

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

Zapytanie

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

Wyniki

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

Ten ROLLUP jest równoważne użyciu wyrażeń z GROUPING SETS :

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

Każda podlista w GROUPING SETS jest interpretowany w taki sam sposób, jak gdyby był bezpośrednio w klauzuli GROUP BY.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Zwróć wiersze z INSERT z ON CONFLICT bez konieczności aktualizacji

  2. Jak połączyć Postgres z serwerem localhost za pomocą pgAdmin na Ubuntu?

  3. AttributeError:obiekt „UUID” nie ma atrybutu „replace” podczas korzystania z typu GUID niezależnego od zaplecza

  4. Pandy - write_frame do sqlite - datetime64[ns]

  5. Jak zezwolić na zdalny dostęp do bazy danych PostgreSQL