@python_beginnersЭта группа больше не существует

Страница 926 из 1885
Zart
15.12.2016
13:49:08
ого

пожалуй я не хочу знать, зачем оно тебе понадобилось

Johnnie
15.12.2016
13:50:14
que pasa paradox

pulat
15.12.2016
13:51:36
Google
pulat
15.12.2016
13:53:04
Я уже задолбал с этом вопросам, да?

V
15.12.2016
16:17:08
я вот думал что знаю основы sql, но выяснилось, что нет. в базе есть куча полей, среди них есть id и timestamp (DateTime). хочу сделать view, которая будет показывать мне записи по одной на каждый id, при этом будет выбирать самый свежий timestamp для этого id, при этом сортировка должна быть по timestamp от самого свежего и старее. вроде как-то просто должно же быть, не?

постгрес

Denis
15.12.2016
16:18:20
Что-то вроде max(timestamp) group by id

V
15.12.2016
16:18:23
в самой лучшей попытке почему-то хрень с сортировкой, не сортирует по timestamp

а как сказать что поля надо показать все, а не только timestamp?

SELECT MAX(timestamp), * FROM my_table GROUP BY id; не канает

а, надо их явно все перечислить

нет, если там остальные поля добавляешь, то он говорит что они должны быть в GROUP BY тоже

мне какой-то self join чтоли нужен

arisu
15.12.2016
16:24:50
Дистинкт тебе нужен

Denis
15.12.2016
16:25:04
А order by timestamp desc limit 1 не работает?

Google
V
15.12.2016
16:25:24
Дистинкт тебе нужен
пробовал, чот тоже не вышло, ща

pulat
15.12.2016
16:25:25
Order для timestamp сделай

V
15.12.2016
16:25:51
А order by timestamp desc limit 1 не работает?
так он тогда же вообще одну строку выведет, не?

Denis
15.12.2016
16:26:08
Все это в group by

Хз, может так нельзя

V
15.12.2016
16:26:48
arisu
15.12.2016
16:26:56
Ну да

Тебе нужно первую по какому-то критерию для каждой группы?

Дистинкт он имя поля

только будет полный скан, ну это неизбежно

V
15.12.2016
16:30:18
SELECT DISTINCT ON (id) * FROM my_table; дало таблицу со всеми полями, но не могу отсортировать по timestamp

SELECT DISTINCT ON (id) * FROM my_table ORDER BY timestamp говорит что в ордер нужно писать то, что в дистинкте;

arisu
15.12.2016
16:30:46
Ну добавь ордер теперь

Хм

Разве?

V
15.12.2016
16:31:54
можно в принципе обернуть во внешний селект и добавить свой ордер, но это уебство какое-то имхо

Разве?
ну вот пишет SELECT DISTINCT ON expressions must match initial ORDER BY expressions

можно сделать ... ORDER BY id, timestamp; тогда без ошибок, но сортировка идет сначала по id, а это вовсе не то, что я хочу

а, ну вот: http://stackoverflow.com/questions/9795660/postgresql-distinct-on-with-different-order-by

только через подзапрос :(

Google
Vhfh Huh G
15.12.2016
17:06:03
посоны

провертье код на ошибку

почти на всех тестах правильный

хз, где ошибка

Zart
15.12.2016
17:07:33
dn это сокращение от чего? 8)

ошибка похоже в elif

а не, вру

нет, не вру. ты забываешь при обновлении максимума резетить c в единицу

b0g3r
15.12.2016
17:26:00
что за сайтик?)

Vhfh Huh G
15.12.2016
17:26:33
что за сайтик?)
http://informatics.mccme.ru/mod/statements/view3.php?id=15505&chapterid=112429#1

b0g3r
15.12.2016
17:26:51
давно там не был, подтянули интерфейс)

Denis
15.12.2016
17:33:08
А я там админ

Konstantin
15.12.2016
17:41:33
Мудл...

Vhfh Huh G
15.12.2016
17:47:08
посоны

такой вопрос

допустим функция макс

нужно, чтобы она в массиве искала самое большое число, но при этом если числа совпадают, нужно, чтобы самое большое и по индексу тоже

Yan?
15.12.2016
17:53:36
Какая структура должна быть у проекта в питоне? Если точнее, то есть ли специфические моменты или проект расскидывается по модулям как всегда/

arisu
15.12.2016
17:53:48
requirements.txt

Google
arisu
15.12.2016
17:53:51
setup.py

остальное как душе угодно

Yan?
15.12.2016
17:56:24
Спасибо

Yan?
15.12.2016
18:03:17
Классно, прошел курс на sololearn, теперь могу тоже в лямбды

Vhfh Huh G
15.12.2016
18:03:48
b0g3r
15.12.2016
18:04:14
enumerate(var) делает вот так:

>>> a = [1,2,3,4,5,4,5] >>> list(enumerate(a)) [(0, 1), (1, 2), (2, 3), (3, 4), (4, 5), (5, 4), (6, 5)]

Admin
ERROR: S client not available

b0g3r
15.12.2016
18:05:16
то есть каждому индексу списка или другого итерируемого объекта ставит в соответствие элемент

[(i, el), ...]

потом мы берем значится функцию max и заглядываем в документацию

а там есть волшебный аргумент key

есть у нас к примеру список чисел, но они в строковом представлении

и тогда max сделает вот такую штуку

>>> a = ['111', '2', '101'] >>> max(a) '2'

нас это совсем не устраивает - мы хотим чтобы максимальным элементом был 111

поэтому мы дописываем аргумент key, дописываем туда функцию, результат которой и будет сравнивать max

то есть вместо того чтобы сравнивать каждый элемент списка, max будет каждый элемент списка скармливать функции key и сравнивать уже результат этой функции

Google
b0g3r
15.12.2016
18:09:05
>>> max(a, key=int) '111'

это хорошо что у нас уже есть такая функция по умолчанию - int

а если такой красивой функции не изобрели?

мы её сделаем сами, можем отдельно определить как def key_func(x): ..., а можем как анонимную (лямбда) функцию перепишем наш пример с int на лямбду: max(a, key=lambda x: int(x))

то есть наша функция принимает x как аргумент, а возвращает int(x)

а теперь взяв наши все знания делаем магию: max(enumerate(a), key=lambda x: (x[1], x[0]))[1]

fox.cpp
15.12.2016
18:12:37
едрить объяснение подробное.

Yan?
15.12.2016
18:12:47
Как на питоне вызвать функцию из другого модуля? Вот есть у меня в файле view.py функция hello. Как мне ее вызвать в main.py

b0g3r
15.12.2016
18:12:56
import view

view.main()

или

from view import main

main()

в данном случае

from modules.view import main

Zart
15.12.2016
18:15:16
А я там админ
случайно коджиро не знаешь?

b0g3r
15.12.2016
18:16:02
зааарт, че я делаю не так

Vhfh Huh G
15.12.2016
18:16:10
Zart
15.12.2016
18:16:27
from .modules.view import hello

Страница 926 из 1885

Эта группа больше не существует Эта группа больше не существует