Last active
February 24, 2018 05:09
-
-
Save niten2/940c535cf0a5400daacccf911559b1de to your computer and use it in GitHub Desktop.
postgress
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
SELECT * FROM weather LEFT OUTER JOIN cities ON (weather.city = cities.name); | |
SELECT max(temp_lo) FROM weather; | |
SELECT city FROM weather WHERE temp_lo = (SELECT max(temp_lo) FROM weather); | |
SELECT city, max(temp_lo) | |
FROM weather | |
GROUP BY city | |
HAVING max(temp_lo) < 40; | |
UPDATE weather | |
SET temp_hi = temp_hi - 2, temp_lo = temp_lo - 2 | |
WHERE date > '1994-11-28'; | |
DELETE FROM weather WHERE city = 'Hayward'; | |
CREATE VIEW myview AS | |
SELECT city, temp_lo, temp_hi, prcp, date, location | |
FROM weather, cities | |
WHERE city = name; | |
SELECT * FROM myview; | |
CREATE TABLE cities ( | |
city varchar(80) primary key, | |
location point | |
); | |
# Транзакции | |
BEGIN; | |
UPDATE accounts SET balance = balance - 100.00 | |
WHERE name = 'Alice'; | |
-- ... | |
COMMIT; | |
SELECT depname, empno, salary, avg(salary) OVER (PARTITION BY depname) FROM empsalary; | |
Вызов оконной функции всегда содержит предложение OVER, следующее за названием и аргументами оконной функции. | |
Это синтаксически отличает её от обычной или агрегатной функции. | |
Предложение OVER определяет, как именно нужно разделить строки запроса для обработки оконной функцией. | |
Предложение PARTITION BY, дополняющее OVER, указывает, что строки нужно разделить по группам или разделам, | |
объединяя одинаковые значения выражений PARTITION BY. Оконная функция вычисляется по строкам, попадающим в один раздел с текущей строкой. | |
# Наследование | |
CREATE TABLE cities ( | |
name text, | |
population real, | |
altitude int -- (высота в футах) | |
); | |
CREATE TABLE capitals ( | |
state char(2) | |
) INHERITS (cities); | |
WITH | |
table1 AS ( | |
SELECT id, 'user', to_id as model_id, updated_at | |
FROM user_connections | |
WHERE user_id = ? AND status = ? | |
UNION | |
SELECT id, 'blogger', blogger_id as model_id, updated_at | |
FROM blogger_followers | |
WHERE user_id = ? | |
) | |
SELECT * FROM table1 | |
ORDER BY updated_at DESC | |
LIMIT ? | |
OFFSET ? | |
EXPLAIN SELECT "bloggers".* FROM "bloggers" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment