@proRuby

Страница 160 из 1594
I
29.08.2016
05:51:59
или в цикле в Ruby?

Amir
29.08.2016
05:52:03
нет в руби :)

ojab
29.08.2016
05:52:34
select distinct on, не?

и не нужен никакой union

Google
kolas
29.08.2016
06:35:43
Amir ppp_data везде разный чтоли?

Amir
29.08.2016
06:54:23
но в запросе на конкретную дату надо строить юнионы

ojab
29.08.2016
06:59:24
если понадобились union'ы — скорее всего ты что-то делаешь не так

какой юзкейс вообще?

откуда ppp_data для каждого запроса берётся?

и откуда список ppp_id берётся?

Amir
29.08.2016
07:05:00
Вобщем так, данные такого вида: id, ppp_id, ppp_date, cnt 1,123,'2016.01.01 10:00:00', 100 2,123,'2016.01.01 10:12:00', 101 3,123,'2016.01.01 10:33:00', 102 4,123,'2016.01.01 10:34:00', 10 5,124,'2016.01.01 10:00:00', 120 6,124,'2016.01.01 10:11:00', 123 7,124,'2016.01.01 10:12:00', 1330 8,124,'2016.01.01 10:13:00', 0 и далее

надо получить на Каждую ДатуВремя последнее значение по ppp_id к заданному времени и все это просуммировать

допустим каждую минуту

тьфу cnt по идее нарастающий для каждого ppp_id

т.е. нужно получить последнее близкое значение к заданному времени

и по всем ppp_id просуммировать в разрезе для заданного времени

Google
Amir
29.08.2016
07:08:33
1С-ки наверно есть тут :), это как получить СрезПоследних, потом получить итоги

Alex
29.08.2016
07:12:45
Если ничего не придумаешь, то в AR можно напрямую SQL запрос сделать.

Иногда это оправдано.

Но имхо криво конечно.

Есть еще arel

ojab
29.08.2016
07:14:10
"все это просуммировать" — что просуммировать? "последнее близкое значение к заданному времени" — близкое или последнее перед ppp_date?

Amir
29.08.2016
07:14:54
последнее перед "?" на заданную датувремя

ojab
29.08.2016
07:15:38
датавремя одинаковое для всех?

Amir
29.08.2016
07:16:15
в параметре ага

ojab
29.08.2016
07:17:31
select distinct on (ppp_id) where ppp_date < ? order by id чем не подходит?

Amir
29.08.2016
07:32:31
просто не понимаю этот запрос

он наверно возмет все уникальные ppp_id меньше заданной даты

наверно, надо гуглить\

ojab
29.08.2016
07:36:39
он возьмёт все строки, где ppp_date < ?, отсортирует их по id и оставит только одну строку для каждого ppp_id

Amir
29.08.2016
07:37:21
таак

kolas
29.08.2016
07:37:33
надо еще по ppp_id выборку

where ppp_if in (1,2,3)

ojab
29.08.2016
07:40:31
>по всем ppp_id

Amir
29.08.2016
07:47:13
Я конечно дурацко объяснил задачку :) попробую на словах Представьте что есть нескольок десяток магазинов где продаются галоши каждый магазин делает запись об остатке галош , с случайной периодичностью директор магазинов потребовал вам, пройтись по магазинам и узнать сколько галош в 11 утра была в наличии вы проходитесь по всем магазинам и в журнале регистраций находите самую последнюю запись ближнее к 11 утра и записываете в блокном кол-о галош и отчитываетесь что в каком то магазине столько то галош, директор говорит хорошо, сколько было всего вы берете калькулятор и суммируете и говорите результат потом директор говорит, молодец, сходит еще узнай сколько было в 11:30 , 12:00, 12:30 и так далее до 18:00 вечера

ojab
29.08.2016
07:56:23
суммировать надо cnt?

Google
Amir
29.08.2016
07:57:40
ага

cnt от count

Artemy
29.08.2016
08:00:30
такое только запросами лучше напрямую 1. запрос дает тебе Id магазина и дату записи, типа select id,max(date) from ... where date < ... 2. на основе него юзает вложенный 1й

Amir
29.08.2016
08:01:48
такое только запросами лучше напрямую 1. запрос дает тебе Id магазина и дату записи, типа select id,max(date) from ... where date < ... 2. на основе него юзает вложенный 1й
в данное время так и сделал работает долго более минуты, и за это время таблица будет не доступен на сайте, или будет кривые данные выдавать

Наверно сделаю как советует ПХПешник " ну когда мне необохдимо было подобное сделать поступал так данные которые необходимо - консолидировать в одну-несколько независимых таблиц допустим это кастомные price custom_price - таблица лью данные в custom_price_new далее когда скрипт отработает - делается move средствами mysql, что происходит мгновенно "

kolas
29.08.2016
08:02:46
почему не доступна то?

Artemy
29.08.2016
08:03:03
индексы? и да лочится она не должна

Amir
29.08.2016
08:03:31
нет, логические во время обновления не должны данные выдаваться

Artemy
29.08.2016
08:05:14
ты имеешь ввиду что когда таблица с сырыми данными будет обновляться, запрос будет неточные данные выводить?

Amir
29.08.2016
08:06:07
ага

Artemy
29.08.2016
08:07:45
ну тогда да, делай отчетную таблицу, ее заполняй когда необходимо, только суть будет та же, выполняешь этот долгий запрос и запихиваешь в отчетную таблицу данные

типа отчетная всегда актуальна

kolas
29.08.2016
08:10:39
а как это не точные? я так понимаю эти данные не должны изменяться

они же в прошлом

Amir
29.08.2016
08:10:49
Наверно сделаю две модели с отдельными таблицами теперь надо придумать логику как между ними переключиться на лету если у текущей таблицы идут обновления данные брать с другой

kolas
29.08.2016
08:11:24
ты эе не пошлешь марти с прошлое чтобы купить галоши

Nikolay
29.08.2016
08:11:40
а может отчетную таб лицу триггерами заполнять?

Alex
29.08.2016
08:11:48
а отчет сам по себе привязан к дате когда он создан.

Google
Nikolay
29.08.2016
08:12:06
а две модели с отдлельными таблицами это пахнет костылем

Amir
29.08.2016
08:12:11
нет там по идее надо рисовать линейный график

и очень быстро и точно

Alex
29.08.2016
08:12:37
нет там по идее надо рисовать линейный график
Две таблицы с какими то move это костыль

пхпшник такой пхпшник

Amir
29.08.2016
08:12:51
:)

Alex
29.08.2016
08:12:54
Тебе надо отчет сгенерить, вот и создавай новый отчет

Nikolay
29.08.2016
08:12:56
Alex
29.08.2016
08:13:04
и ставь ему флажок finished: false

Admin
ERROR: S client not available

Nikolay
29.08.2016
08:13:14
если надо отчет - сделай рескью таск и пусть в фоне фигачит

Alex
29.08.2016
08:13:21
закончил ответ? в транзакции ставишь finished: true ему и удаляешь (если нужно) старый отчет

отчет has_many records чего то у тебя там.

Вообще да, я не заметил что ты в рамках вебморды это генеришь

whenever пригодится тебе.

Nikolay
29.08.2016
08:14:25
Да неужели
шоп ты понимал - у меня были отчеты по базам с лямами строк, которые рисовались по паре часов отдельным тазиком

Alex
29.08.2016
08:14:49
А в отчетах была фигня потому что ты тестами не обложил

Nikolay
29.08.2016
08:14:59
так что finished: true - это необходимость:)

Alex
29.08.2016
08:15:01
а рисовались пару часов потому что ты AR не оптимизировал

Google
Nikolay
29.08.2016
08:15:11
это было другой проект, и оракл

Alex
29.08.2016
08:15:22
а я про АР и тесты не говорил вообще
Че подколоть уже нельзя?

Nikolay
29.08.2016
08:15:39
Че подколоть уже нельзя?
идите в жопу с такими подколаами. у меня хуево с юмором напрочь

Alex
29.08.2016
08:15:51
идите в жопу с такими подколаами. у меня хуево с юмором напрочь
Ну так пиши тесты никто и не будет подкалывать

Nikolay
29.08.2016
08:16:03
когда посчитаю что они мне нужны начну писать

Alex
29.08.2016
08:16:33
когда посчитаю что они мне нужны начну писать
А ты не будешь знать что они тебе нужны пока не попробуешь и не поймешь суть.

Nikolay
29.08.2016
08:16:34
а вот такое пинание - ОТВРАЩАЕТ

Alex
29.08.2016
08:16:42
Сейчас тебе кажется что это затратно и бесполезно

Это нормальное явление для того кто не писал никогда тесты.

Nikolay
29.08.2016
08:17:02
А ты не будешь знать что они тебе нужны пока не попробуешь и не поймешь суть.
да. именно так. и я сейчас считаю что они мне нужны. а заябывающие тестодрочеры ОТБИВАЮТ БЛЯДЬД ЖЕЛАНИЕ

Alex
29.08.2016
08:17:16
Забавно что ты сделал такой вывод даже не попробовав.

Nikolay
29.08.2016
08:17:21
Сейчас тебе кажется что это затратно и бесполезно
не кажется, но тестодроч выбешивает

Alex
29.08.2016
08:17:30
Так возьми и напиши простой тест

Nikolay
29.08.2016
08:17:39
Забавно что ты сделал такой вывод даже не попробовав.
а хватит делать выводы из того чего не говорилось

Alex
29.08.2016
08:17:53
а хватит делать выводы из того чего не говорилось
Ну потому что человек который пробовал так не отвечает

а отвечает как раз тот кто вообще в тестах не шарит.

Это из опыта.

Nikolay
29.08.2016
08:18:19
Ну потому что человек который пробовал так не отвечает
я много чего попробовал и тесты тоже. и я уже не раз говорил что я их не понимаю

Alex
29.08.2016
08:18:33
Да не пробовал ты тестами обкладывать достаточный кусок

Nikolay
29.08.2016
08:18:46

Страница 160 из 1594