Podstawy baz danych 11
Baza
DVD Rental Service
Series
samples
generate_series(start, stop)
SELECT * FROM generate_series(2,4);generate_series(start, stop, step)
SELECT * FROM generate_series(5,1,-2);generate_series(start, stop, step interval)
SELECT * FROM generate_series('2008-03-01 00:00'::timestamp,
'2008-03-04 12:00', '10 hours');with range_values as (
select date_trunc('week', min(payment_date)) as minval,
date_trunc('week', max(payment_date)) as maxval
from payment),
week_range as (
select generate_series(minval, maxval, '1 week'::interval) as week
from range_values
),
weekly_counts as (
select date_trunc('week', payment_date) as week,
count(*) as ct
from payment
group by 1
)
select week_range.week,
weekly_counts.ct
from week_range
left outer join weekly_counts on week_range.week = weekly_counts.week;select extract(hour from payment_date) as hour, count(*) as counter
from payment
group by hour
order by counter descSequelize
Sequelize is a promise-based Node.js ORM for Postgres, MySQL, MariaDB, SQLite and Microsoft SQL Server. It features solid transaction support, relations, eager and lazy loading, read replication and more.
const { Sequelize, Model, DataTypes } = require('sequelize');
const sequelize = new Sequelize('sqlite::memory:');
class User extends Model {}
User.init({
username: DataTypes.STRING,
birthday: DataTypes.DATE
}, { sequelize, modelName: 'user' });
sequelize.sync()
.then(() => User.create({
username: 'janedoe',
birthday: new Date(1980, 6, 20)
}))
.then(jane => {
console.log(jane.toJSON());
});
Materiały
Cwiczenia
- pokaz ile fimow zostalo wypozyczonych w kazdym tygodniu roku (od 1 do 52), dla kazdego tygodnia w oddzielnej kolumnie podaj nazwe miesiaca
| week | month | qty |
|---|---|---|
| 1 | January | 123 |
| 2 | January | 0 |
| 3 | January | 2 |
| 4 | January | 5 |
| 5 | February | 1 |