Skip to content

Instantly share code, notes, and snippets.

@niten2
Last active February 24, 2018 05:09
Show Gist options
  • Save niten2/940c535cf0a5400daacccf911559b1de to your computer and use it in GitHub Desktop.
Save niten2/940c535cf0a5400daacccf911559b1de to your computer and use it in GitHub Desktop.
postgress
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