@ru_python

Страница 1346 из 9768
agic
04.08.2016
13:01:26
Vadim
04.08.2016
13:01:36
немного холивара, но вдруг найдется аргументация за тестинг debian - testing или sid? хочется потыкать и вдруг понравится

Dmitry
04.08.2016
13:02:15
Date C_ID C_SUM AD_SUM 2016-06-06 596269391 2680.4 106 2016-06-06 596269391 2680.4 196.22 2016-06-06 596269391 2680.4 392.99 2016-06-06 596269391 2680.4 1383.98 2016-06-06 596269391 2680.4 106 2016-06-06 596269391 2680.4 389.02

Google
Al
04.08.2016
13:02:19
еще бы категории в хранилище)

agic
04.08.2016
13:02:41
еще бы категории в хранилище)
какие категории не понял? о чем

Dmitry
04.08.2016
13:02:47
Вот мне нужно сделать total_sum для C_SUM но так чтобы C_ID не дублировался за дату

agic
04.08.2016
13:03:37
ам..

where C_ID!=C_ID and Date=Date

Al
04.08.2016
13:04:15
какие категории не понял? о чем
я про хранилище телеграиа

Dmitry
04.08.2016
13:04:16
AdWordsSpendStat.objects.using('db').filter( campaign_id__in=campaigns_ids_array, date__gte=from_date, date__lte=to_date).aggregate( total_cost=Sum("campaign_cost") ) Но при этом нужно какой то distinct on campaign. Понимаете?

я в django ормке ваяю запросы

agic
04.08.2016
13:04:51
или я туплю

Dmitry
04.08.2016
13:05:14
Т.е брать каждый c_sum только один раз на дату

agic
04.08.2016
13:05:16
ой не )) джанго я только ругать умею (

Dmitry
04.08.2016
13:05:22
я вот хз как сформулироваь даже словами

agic
04.08.2016
13:05:42
у тебя есть c_ID совпадающие за дату

Google
Dmitry
04.08.2016
13:05:51
угу

т.е нужно предагрегат какой то а на нём уже агрегат сделать

agic
04.08.2016
13:06:05
по сути если я правильно понял тебя... выбрать все уникальные C_ID за дату

только надо ли их суммировать

суммы то разные

короче запутал...

хотя да там совпадает суммы

бери уникальное значение за эту дату и считай

Denis
04.08.2016
13:10:49
Тут можно сделать двумя путями: 1) Выбрать уникальные даты и по ним считать сумму 2) Или же выбирать уникальные C_ID (в джанге проще всего сделать через Count) и тогда считать сумму по дате. В первом случае можно сделать через extra, values, count и sum Во втором - count и sum

Dmitry
04.08.2016
13:12:40
Хм

Q() и пошли условия да?

медленно получится. Ок а если вынести в отдельные таблицы c_id, c_sum, Т.е сразу собирать сюда, а затем разбрасывать и оттуда читать

Denis
04.08.2016
13:13:44
это ко мне?

Dmitry
04.08.2016
13:13:47
так оптимальнее?

Eue

Угу

agic
04.08.2016
13:15:01
медленно работает workbench

15:24:37 Restoring blala (acc)

а время 1815

Google
agic
04.08.2016
13:15:37
лучше бы скриптом залил

Denis
04.08.2016
13:19:53
Я бы на твоем месте сделал так: 1) Выбрал бы все уникальные даты (extra лучше всего подойдет) 2) Потом через цикл выбрал бы все уникальные C_ID и посчитал сумму для них. Получается запросов 1 + count date (много запросов). Это если через ОРМ. Можно составить чистый sql и там сделать вложеный запрос - это выйдет 1 запрос, но большой - это если не с помощью ORM И третий вариант - как ты и говоришь. Тогда выборка пройдет быстрее (если поставить индексы) и можно использовать ОРМ с небольшими запросами.

Это все конечно же имхо и не претендует на правильность)

tosh
04.08.2016
13:21:53
Алсо, какая база?

Denis
04.08.2016
13:23:38
@the_tosh Я думаю, человек Dmitry говорит о том, что c_id за одну дату могут быть несколько и могут повторяться, но нужно выбрать уникальные для каждой даты и по уникальным посчитать общую сумму.

tosh
04.08.2016
13:23:56
Но c_sum же у них разные, не?

Хотя в примере одинаковые

Denis
04.08.2016
13:24:21
разные. Пример такой просто.

tosh
04.08.2016
13:24:29
Тогда какой надо выбрать?

Вот за одну и ту же дату, например c_id 1, c_sum 10 c_id 1, c_sum 20 c_id 1, c_sum 124823479

Ну и вопрос с бэкендом остаётся, т.к. если это постгрес, например, у него есть шикарные window functions

Denis
04.08.2016
13:25:55
Надо выбрать так: DATE C_ID SUM 2016-06-16 1 12312 2016-06-16 12 33 2016-06-17 1 444

и т.д.

@the_tosh а можешь вкратце рассказать про window functions?

tosh
04.08.2016
13:26:40
Группировка, получается, date-c_id-c_sum?

Denis
04.08.2016
13:27:14
Да.

tosh
04.08.2016
13:28:06
Могу поделиться ссылкой :) https://www.postgresql.org/docs/current/static/functions-window.html Но в общих чертах ты с помощью них как раз для каждой группы выбираешь отдельный результат. Например, тут ты можешь сгруппировать данные как тебе нужно и посчитать сумму для них. Для другой группы результат будет другой. И всё это в одном запросе

Denis
04.08.2016
13:28:49
@the_tosh Спасибо.

tosh
04.08.2016
13:28:59
Более того, ты можешь аггрегативно накапливать данные внутри группы

Google
Whore Amazing
04.08.2016
13:29:08
а если чекать код онлайн-линтерами, он никуда не утечет?

tosh
04.08.2016
13:29:46
Например, мы используем wf как раз для этого: у нас по группам сумма растёт для каждой новой записи (где значение = текущее значение поля + значение этого поля из предыдущей строки)

Whore Amazing
04.08.2016
13:30:09
печально

tosh
04.08.2016
13:30:11
ну это средствами постгри
Я поэтому и спросил, какой бэк

Admin
ERROR: S client not available

agic
04.08.2016
13:30:48
вообще +1 за window func

tosh
04.08.2016
13:32:57
Кстати, в плане утечки, моё почтение авторам scrapy, которые прикрутили хранилище. Ничего не делают, а данные есть

tosh
04.08.2016
13:45:38
Ну у них есть же https://scrapinghub.com/scrapy-cloud/ Где можно хранить свои парсеры.

Соответственно, им ничего не мешает использовать их и собирать данные (которые можно толкать, например)

Pavel
04.08.2016
14:08:50
и т.д.
Если примерно Джанго Орм код на кидать, то что-то типа такого Траляля.all()..group_by((date, c_id)).extra(summ=Sum(c_sum))

?

Denis
04.08.2016
14:11:24
Нет. Получается, что запрос сформируется по одному date и по одному c_id и выберится их сумма, но c_id на одну дату могут быть много ведь и тогда группировка по c_id с датой вместе не сойдет.

Если примерно Джанго Орм код на кидать, то что-то типа такого Траляля.all()..group_by((date, c_id)).extra(summ=Sum(c_sum))

Aragaer
04.08.2016
14:16:19
а вот я еще по докеру помучаю, можно?

Stanislav
04.08.2016
14:16:52
Нафига вы докер юзаете?

Google
Stanislav
04.08.2016
14:17:12
git же есть

Denis
04.08.2016
14:17:25
Лучше пускай Dmitry объяснит, как ему нужно) Это как я понял его слова - что нужно по каждой уникальной дате выбрать уникальные c_id и посчитать сумму по этой уникальной c_id. В дате может быть много c_id (повторяющихся и нет) и куча сумм для этих c_id

Aragaer
04.08.2016
14:17:26
эээ

между ними есть что-то общее?

Amir
04.08.2016
14:17:35
извените я вот не понял

Amir
04.08.2016
14:17:42
а каким образом гит заменяет докер?

parikLS
04.08.2016
14:17:46
смешались кони, люди

Denis
04.08.2016
14:17:58
и печеньки с мухами.

Stanislav
04.08.2016
14:18:08
между ними есть что-то общее?
А что для тебя есть докер?

Amir
04.08.2016
14:18:18
провокация)

Aragaer
04.08.2016
14:18:32
способ запускать приложения в изолированном окружении

tosh
04.08.2016
14:18:47
Ох щаз бы за докер срачик очередной развести

Amir
04.08.2016
14:18:50
в гите код, в докере доставка среды по серверам

Stanislav
04.08.2016
14:18:52
Я залил свой virtualenv с джанго сайтиком в гит

Amir
04.08.2016
14:19:05
ну молодец

Stanislav
04.08.2016
14:19:10
Зашел с компа другого Написал гит клон Написал source bin/activate

И все

Aragaer
04.08.2016
14:19:18
короче, есть прога. Просто так запускается. Засунул ее в докер, там не запускается

Страница 1346 из 9768