Hàm cửa sổ tổng hợp

Thống kê tóm tắt và Window Functions trong PostgreSQL

Michel Semaan

Data Scientist

Bảng nguồn

Truy vấn

SELECT
  Year, COUNT(*) AS Medals
FROM Summer_Medals
WHERE
  Country = 'BRA'
  AND Medal = 'Gold'
  AND Year >= 1992
GROUP BY Year
ORDER BY Year ASC;

Kết quả

| Year | Medals |
|------|--------|
| 1992 | 13     |
| 1996 | 5      |
| 2004 | 18     |
| 2008 | 14     |
| 2012 | 14     |
Thống kê tóm tắt và Window Functions trong PostgreSQL

Hàm tổng hợp

Truy vấn MAX

WITH Brazil_Medals AS (...)

SELECT MAX(Medals) AS Max_Medals
FROM Brazil_Medals;

Kết quả MAX

18

Truy vấn SUM

WITH Brazil_Medals AS (...)

SELECT SUM(Medals) AS Total_Medals
FROM Brazil_Medals;

Kết quả SUM

64
Thống kê tóm tắt và Window Functions trong PostgreSQL

Hàm cửa sổ MAX

Truy vấn

WITH Brazil_Medals AS (...)

SELECT
  Year, Medals,
  MAX(Medals)
    OVER (ORDER BY Year ASC) AS Max_Medals
FROM Brazil_Medals;

Kết quả

| Year | Medals | Max_Medals |
|------|--------|------------|
| 1992 | 13     | 13         |
| 1996 | 5      | 13         |
| 2004 | 18     | 18         |
| 2008 | 14     | 18         |
| 2012 | 14     | 18         |
Thống kê tóm tắt và Window Functions trong PostgreSQL

Hàm cửa sổ SUM

Truy vấn

WITH Brazil_Medals AS (...)

SELECT
  Year, Medals,
  SUM(Medals) OVER (ORDER BY Year ASC) AS Medals_RT
FROM Brazil_Medals;

Kết quả

| Year | Medals | Medals_RT |
|------|--------|-----------|
| 1992 | 13     | 13        |
| 1996 | 5      | 18        |
| 2004 | 18     | 36        |
| 2008 | 14     | 50        |
| 2012 | 14     | 64        |
Thống kê tóm tắt và Window Functions trong PostgreSQL

Phân vùng với hàm cửa sổ tổng hợp

Truy vấn

WITH Medals AS (...)
SELECT Year, Country, Medals,
  SUM(Medals) OVER (...)
FROM Medals;

Kết quả

| Year | Country | Medals | Medals_RT | 
|------|---------|--------|-----------|
| 2004 | BRA     | 18     | 18        |
| 2008 | BRA     | 14     | 32        |
| 2012 | BRA     | 14     | 46        |
| 2004 | CUB     | 31     | 77        |
| 2008 | CUB     | 2      | 79        |
| 2012 | CUB     | 5      | 84        |

Truy vấn

WITH Medals AS (...)
SELECT Year, Country, Medals,
  SUM(Medals) OVER (PARTITION BY Country ...)
FROM Medals;

Kết quả

| Year | Country | Medals | Medals_RT | 
|------|---------|--------|-----------|
| 2004 | BRA     | 18     | 18        |
| 2008 | BRA     | 14     | 32        |
| 2012 | BRA     | 14     | 46        |
| 2004 | CUB     | 31     | 31        |
| 2008 | CUB     | 2      | 33        |
| 2012 | CUB     | 5      | 38        |
Thống kê tóm tắt và Window Functions trong PostgreSQL

Hãy luyện tập!

Thống kê tóm tắt và Window Functions trong PostgreSQL

Preparing Video For Download...