PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Chức năng SQL Condition on Window

Hoạt động tất cả cùng một lúc:

Và chương tuyệt vời Ảnh hưởng đến chức năng của cửa sổ :

Giả sử bạn có:

CREATE TABLE Test ( Id INT) ;
 
INSERT  INTO Test VALUES  ( 1001 ), ( 1002 ) ;

SELECT Id
FROM Test
WHERE Id = 1002
  AND ROW_NUMBER() OVER(ORDER BY Id) = 1;

Trường hợp 1:

If ( Id = 1002 ) is first, then if ( ROW_NUMBER() OVER(ORDER BY Id) = 1 )

Kết quả:1002

Trường hợp 2:

If ( ROW_NUMBER() OVER(ORDER BY Id) = 1 ), then check if ( Id = 1002 )

Kết quả:trống

Để có được những gì bạn muốn, bạn có thể bọc hàm cửa sổ bằng CTE/subquery như trong câu trả lời Gordon :

;WITH cte AS
(
  SELECT t.*, MAX(AVG) OVER (PARTITION BY city) AS average
  FROM avgTemperatures t
)
SELECT *
FROM cte
where average > 19
ORDER BY id;

db <> fiddle demo

Đầu ra:

╔═════╦══════════╦═════╦═════════╗
║ id  ║   city   ║ avg ║ months  ║
╠═════╬══════════╬═════╬═════════╣
║   1 ║ New-York ║  20 ║     3   ║
║   2 ║ New-York ║  19 ║     6   ║
║   3 ║ New-York ║  15 ║    12   ║
║   4 ║ New-York ║  15 ║    24   ║
║  11 ║ Miami    ║  28 ║     1   ║
║  12 ║ Miami    ║  25 ║     4   ║
║  13 ║ Miami    ║  21 ║    12   ║
║  14 ║ Miami    ║  22 ║    15   ║
║  15 ║ Miami    ║  20 ║    24   ║
╚═════╩══════════╩═════╩═════════╝


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Chuyển đổi mảng đối tượng thành mảng tương thích cho nodejs / pg / unnest

  2. Không thể di chuyển trên Heroku

  3. Làm cách nào để lấy danh sách các múi giờ được hỗ trợ bởi PostgreSQL?

  4. lỗi khi cài đặt psycopg2, không tìm thấy thư viện cho -lssl

  5. Luồng được tìm nạp từ Postgres với jOOQ không trả về kết quả từ lớp học