DELETE `t1`
FROM `channel_snapshots` AS `t1`
LEFT JOIN (
SELECT MAX(`snapshot_time`) AS `time`, `channel_id`
FROM `channel_snapshots`
GROUP BY `channel_id`
) AS `t2` ON `t2`.`time` = `t1`.`snapshot_time` AND `t2`.`channel_id` = `t1`.`channel_id`
WHERE `t1`.`snapshot_time` < NOW() - INTERVAL 12 HOUR
AND `t2`.`channel_id` IS NULL
with origtable (name, math, physic, chemie) as (values ('Вася', 80, 52, 69), ('Коля', 50, 90, 95), ('Петя', 62,98, 42))
, orders as (
select name,
row_number() over (order by math desc) as mathid,
row_number() over (order by physic desc) as phid,
row_number() over (order by chemie desc) as chid
from origtable
)
select m.name as "математика", p.name as "физика", c.name as "химия" from orders as m
join orders as p on m.mathid=p.phid
join orders as c on m.mathid=c.chid
order by m.mathid;
математика | физика | химия
------------+--------+-------
Вася | Петя | Коля
Петя | Коля | Вася
Коля | Вася | Петя
sazhyk @sazhykТак что решение вот оно!
Сергей Горностаев: Вот на этой странице есть такие слова
Примечание
Стандартный файл settings.py, созданный с помощью команды django-admin startproject, включает локализацию USE_L10N = True (выключите её нахрен, включайте в нужных частях явно, иначе огребёте, прим. переводчика).
class ReactorCreateView(PermissionRequiredMixin, CreateView):
permission = 'myapp.create_reactor'
model = AtomicReactor
def form_valid(self, form):
photos = self.request.POST.getlist('photos[]')
for strg in photos:
strg =strg.partition('base64,')[2]
img_data = base64_decode(strg)
photo = CompanyImage(order=self.object)
photo.file_up.save('123.jpg', ContentFile(img_data))
photo.save()
return HttpResponseRedirect(self.get_success_url())
SELECT COUNT(*) FROM table WHERE field = value
Почему "SELECT count(*) FROM bigtable;" работает медленно?
Потому что не используется индекс. PostgreSQL выполняет проверку видимости каждой записи и таким образом производит последовательное сканирование всей таблицы. Если вы хотите, вы можете отслеживать количество строк в таблице с помощью триггеров, но это вызовет замедление при операциях записи в таблицу.
Вы можете получить некоторую оценку. Колонка reltuples в таблице pg_class содержит информацию из результата выполнения последнего оператора ANALYZE на эту таблицу. На большой таблице, точность этого значения составляет тысячные доли процента, что вполне достаточно для многих целей.
"Точный" результат count, часто не будет точным долгое время в любом случае; из-за конкурентности MVCC, count будет точным только на момент вызова запущенного запроса SELECT count(*) (или ограничиваться уровнями изоляции транзакций данной транзакции), и может потерять актуальность уже в момент завершения запроса. При постоянной работе транзакций, изменяющий таблицу, два вызова count(*), которые завершатся в одно и то же время могут показать разные значения, если изменяющая транзакция завершилась между их вызовами.
https://wiki.postgresql.org/wiki/Часто_Задаваемые_...
#
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)