
я люблю грин дей
01.02.2017
07:47:45
чо залип

leon4uk
01.02.2017
07:48:00
да вам скажи)

Славик
01.02.2017
07:50:28
нифига
ну вывод будет 3 колонки
айди, дата, значение

Google

Славик
01.02.2017
07:50:58
а я хочу 7

leon4uk
01.02.2017
07:51:06
добавить колнку с датой)

IT hub
01.02.2017
07:51:48
Как продать стартап корпорации: пример продажи «ВКармане» «Тинькофф Банку» — Колонка основателя акселератора Disruptive.vc

Славик
01.02.2017
07:53:40

IT hub
01.02.2017
08:13:58
Гаджеты для современного киборга

leon4uk
01.02.2017
08:44:18

IT hub
01.02.2017
08:46:58
«Пятерочка» запустит программу лояльности для покупателей

Alexander
01.02.2017
08:52:16
Alexander Matyushin:
Есть кто кинотеатры обслуживает? Вопрос по сервису рентрак

IT hub
01.02.2017
09:03:48
От небольшой кондитерской до всемирного бренда — история Ferrero
Реверс-инжиниринг лазерного сканера Leuze RS4

Славик
01.02.2017
09:26:15

IT hub
01.02.2017
09:28:58
Основы компьютерных сетей. Тема №6. Понятие VLAN, Trunk и протоколы VTP и DTP
Google решила отнять у россиянина домен ɢoogle.com из-за рассылки спама

Google

leon4uk
01.02.2017
09:41:44
не понял чего хочешь, Славик

Славик
01.02.2017
09:59:32
таблица
user date value
3 колонки, я хочу запрос, который вернет 6 колонок
user date1 date2 date3 date4 date 5
value1 value2 value3 value4 value5

Маришка
01.02.2017
10:03:40
Эт как ._.

Славик
01.02.2017
10:04:41
я пока кроме как 5 джойнов не вижу вариантов
select user, value, date from tbl as tbl1 join tbl as tbl2 on tbl1.user = tbl2.user where tbl1.date = <сегодня> and tbl2.date = <вчера>
и т.д.

Taras ?
01.02.2017
10:15:42
вроде неспроста в хайлоаде пытаются избавиться/вообще не используют джоины

Славик
01.02.2017
10:16:30
я как бы потому и написал эту задачу здесь
что меня джойны не устраивают
другой адекватный вариант тащить данные из таблицы и потом просто обрабатывать их в нужную структуру на языке

Taras ?
01.02.2017
10:17:27

Славик
01.02.2017
10:17:36
но мне интересно, есть ли нормальные способы этого добиться на sql
есть таблица в базе
id | дата (день) | значение (число)
каждый день в нее пишутся текущие значения для каждой айдишки, то есть айдишки постоянно повторяются
собственно, задача: написать запрос, который бы вывел топ30 айдишек по значению вместе историей за предыдущие 5 дней
результат типа мог бы быть таким:
id | 31.01 | 30.01 | 29.01 | 28.01 | 27.01
5 | 10 | 20 | 15 | 12 | 12
7 | 9 | 20 | 15 | 12 | 12
...
если у кого религия не позволяет айдишкам быть не ключами, то считайте, что колонка user
суть в том, чтобы получить историю за N дней изменения значения для пользователя

Taras ?
01.02.2017
10:18:35

Славик
01.02.2017
10:18:54
знаю

Taras ?
01.02.2017
10:19:12

Google

Славик
01.02.2017
10:19:18
нескольких сразу
топ30 же написано

Taras ?
01.02.2017
10:20:07
топ30 пользователей — имеется ввиду топ по определенному параметру отдельному, или чисто по айди?

Славик
01.02.2017
10:20:57
по значению же написано

IT hub
01.02.2017
10:20:59
[Перевод] GitHub ввёл теги для репозиториев

Taras ?
01.02.2017
10:21:06
дата — тип date? или таймстамп? или path(ltree) ?

Славик
01.02.2017
10:21:07
который бы вывел топ30 айдишек по значению
день
плевать, в каком виде
группировать можно
ну пусть будет число в виде
YYYYMMDD
написать функцию, которая для указанной строки будет перебирать все варианты с разным регистром букв

Славик
01.02.2017
10:26:51
например, для слова "лох" будут варианты:
Лох
ЛОх
ЛОХ
ЛоХ
лОХ
лоХ
лОх
вот держи еще одну
я за 10 минут написал функцию на Js

Taras ?
01.02.2017
10:33:20
SELECT "id", "date", "value" from "TABLE" WHERE "id" IN
( SELECT "id" FROM "table" WHERE "date" = '31.01' ORDER BY "value" DESC LIMIT 30) WHERE "date" IN ('31.01', '30.01', '29.01', '28.01', '27.01') ORDER BY "date" DESC, "value" DESC
так как-то, хоть можна и еще отрефакторить — вместо второго IN — больше и меньше таймстамп

Il'ya
01.02.2017
10:34:04
Славик, что с Шпойёном?

Taras ?
01.02.2017
10:34:10
насчет бд — это поинтересней, да

Славик
01.02.2017
10:34:35
select 1

Google

Taras ?
01.02.2017
10:35:06
по сути подзапрос — тот же джоин, ну может там на миллисеку быстрей работает, но тут один подзапрос а не 5 джоинов

Славик
01.02.2017
10:35:38
сертификат протух
и ты ничего не изменил
на выходе 3 колонки будет

Taras ?
01.02.2017
10:36:45
всмысле ничего не изменил?

Admin
ERROR: S client not available

Taras ?
01.02.2017
10:37:27
данные достались(вроде не напутал с сортировкой, мог с параметрами IN напутать - давно не юзал), осталось их вывести и все

Славик
01.02.2017
10:39:14
SELECT id, znacheniye from a_temp_table_one where date > (current_date - INTERVAL '5 days') limit 30
то же самое

Taras ?
01.02.2017
10:40:29
не то же самое — у тебя привязка к последним 5 дням
а как сделать выборку 5 рабочих дней произвольной недели?
опять в код залазить?))
хотя в общем да - интервал - удобней, это да
и у тебя берет 30 строк
а по условиям задачи — не сказано что у одного пользователя не может быть несколько записей одного дня

Маришка
01.02.2017
10:41:54
Так и нужно же вывести топ 30 пользователей

Taras ?
01.02.2017
10:42:40
ну так если у одного айди больше одной строки в один день — достанется 30 записей, но не обьязательно 30 пользователей

Славик
01.02.2017
10:43:06
на выходе 6 колонок должно быть
это самое главное

Taras ?
01.02.2017
10:43:52
я ведь не знаю до какой реальной проблемы является задачей-решением эта задача —- там может фиксировать и много результатов игр многих пользователей каждого дня —- и это вывод таблицы в анализаторе

Google

Taras ?
01.02.2017
10:44:24
все данные достали, достали в нужном качестве и порядке — остальное делает не субд,, субд и без того - узкое место

IT hub
01.02.2017
10:59:09
AirSelfie — мини-дрон для селфи, который крепится на чехол смартфона

Karina
01.02.2017
11:06:39
Я таки родилась под счастливой звездой
Сдала физику

Славик
01.02.2017
11:06:55
поздравляю

IT hub
01.02.2017
11:07:58
«Мигранты» из Uber — Почему американские водители такси-сервисов вынуждены ночевать на парковках
Audi представила в России модель A5 Coupe, синхронизировав анимационные эффекты шоу и движения автомобиля
Сервис для хранения кода GitLab случайно удалил почти 300 ГБ данных из-за ошибки сисадмина
[Перевод] Как я создал SaaS-сервис, который приносит мне 1000 долларов в месяц
Будущее или новый вид мошенничества: продолжение дискуссии об алгоритмической торговле

leon4uk
01.02.2017
11:40:01
select user, value, date from tbl as tbl1
JOIN LATERAL
(SELECT user, value, date from tbl as tbl2
WHERE tbl1.user = tbl2.user AND date = current_date - INTERVAL - '1 day'
LIMIT 1 ) AS tbl1 ON TRUE
WHERE tbl1.date = current_date;

Славик
01.02.2017
11:43:59
select user, value, date from tbl as tbl1 join tbl as tbl2 on tbl1.user = tbl2.user where tbl1.date = <сегодня> and tbl2.date = <вчера>
и т.д.

leon4uk
01.02.2017
11:45:03
дык я тебе написал куда лучше
EXPLAIN (ANALYZE, BUFFERS)
сделай
потом кинь сюда
https://explain.depesz.com/

IT hub
01.02.2017
11:48:09
Защита сайта от хакерских атак — Web Application Firewall
[Перевод] Биологи приближаются к разгадке узоров Тьюринга