@pgsql

Страница 178 из 1062
Pavel
02.12.2016
18:13:11
Хочу разбить таблицу на группы, группа определяется 2мя полями, вот код: SELECT style.discipline, athlete.gender, min(result.swim_time) OVER (PARTITION BY style.discipline, athlete.gender) FROM competitions_swimresult result LEFT JOIN app_athlete athlete ON athlete.id = result.athlete_id LEFT JOIN competitions_swimevent event ON event.id = result.event_id LEFT JOIN competitions_swimstyle style ON style.id = event.style_id

но получаю это

почему так, я же разбивал на группы?

Anatoliy
02.12.2016
18:18:38
группировки то нету, у вас в какой-то из таблиц один ко многим.

Google
Pavel
02.12.2016
18:20:18
а (PARTITION BY style.discipline, athlete.gender) разве не делает группировку?

Anatoliy
02.12.2016
18:21:18
Алсо, оконные функции строки не группирует

Pavel
02.12.2016
18:22:01
но MIN посчитался верно, как и в случае GROUP BY

т.е. MIN посчитался для групп. Просто в результате куча дублей

вот так вышло

первый скрин с ошибкой

Anatoliy
02.12.2016
18:23:02
Ну да, окна оно посчиало, для всех строк.

но данные оно не группирует

можете distinct сделать или сгруппировать по не агрегированным полям

Alexey
02.12.2016
18:24:28
у меня простейший запрос по id работает в 10 раз медленнее чем на центосе
Привет! Орёл или Смоленск? У нас вроде тормозов не заметно. Обычный селект тупит?

Pavel
02.12.2016
18:24:50
ок, я использую окна, а не GROUP BY, т.к. мне нужно сделать группы по 2 полям, а потом в каждой группе посчитать MIN и выбрать из каждой группы только 1 запись, даже есть в группе будет несколько записей с одним MIN

как тут вот: http://stackoverflow.com/questions/3800551/select-first-row-in-each-group-by-group

та же задача

Google
Denis
02.12.2016
18:25:45
Аггей
02.12.2016
18:26:14
Нумеруйте строки
Щас попробую пример соорудить

Аггей
02.12.2016
18:32:52
Хотя можно тупо select discipline, gender, m from ( SELECT style.discipline, athlete.gender, result.swim_time, min(result.swim_time) OVER (PARTITION BY style.discipline, athlete.gender) m FROM competitions_swimresult result LEFT JOIN app_athlete athlete ON athlete.id = result.athlete_id LEFT JOIN competitions_swimevent event ON event.id = result.event_id LEFT JOIN competitions_swimstyle style ON style.id = event.style_id ) q where m=swim_time

Аггей
02.12.2016
18:34:34
даже есть в группе будет несколько записей с одним MIN - вот это не выполняется )

Alexey
02.12.2016
18:36:14
пробовал даже 9.6 ставить, все тоже самое
До понедельника терпит? Глянем у себя. Спишемся в личке

Pavel
02.12.2016
18:36:20
еще попрос, получается, если я делаю GROUP BY, то в выборку не могут быть те поля, которые не участвуют в агрегации. А если через окна считаю MIN или что-то другое, то могу выбрать все дополнительные поля, да?

Denis
02.12.2016
18:38:01
До понедельника терпит? Глянем у себя. Спишемся в личке
да, как раз в пн дальше будем смотреть, спс

Anatoliy
02.12.2016
18:38:48
Оконные функции считают резульатат для окна (того, что в over), а GROUP BY группирует данные (для всей выборки, или выборки в окне).

Pavel
02.12.2016
18:40:08
Оконные функции считают резульатат для окна (того, что в over), а GROUP BY группирует данные (для всей выборки, или выборки в окне).
понял, спасибо. Получается, окна просто считают за сценой для группы, но мне группу не возвращают

Anatoliy
02.12.2016
18:40:23
именно так

Посмотрите примеры с rank, row_number – вам будет понятнее, как оно работает

еще в вашем случае можно посмотреть на having - это тоже укладывается в ваш случай

Andrey
03.12.2016
09:58:38
А вот если виртуалку, на которой работает vacuum -fz, рубануть на фиг, с какой вероятностью база выживет? fsync=on, synchronous commit=off

Айтуар
03.12.2016
10:10:49
Andrey
03.12.2016
11:38:03
Благодарю

Антон
04.12.2016
01:24:11
ребят, а кто работает на ссдшках, подскажите, нормальная ситуация что ближе к концу жизни растут иовейт?

Darafei
04.12.2016
06:34:25
ну как, нормальная

Google
Darafei
04.12.2016
06:35:55
у Sasmung 840 Evo, например, есть баг прошивки, при котором записанные давно данные за полгода-год утекают, и контроллеру приходится дольше ретраиться

частично лечится апдейтом прошивки

или регулярным чтением-перезаписью всего

Sergey
04.12.2016
07:17:42
у Sasmung 840 Evo, например, есть баг прошивки, при котором записанные давно данные за полгода-год утекают, и контроллеру приходится дольше ретраиться
Разве прошивки? Были исследования, что флеш-память со временем теряет записанную информацию. Причём, в зависимости от температуры, там могут быть месяцы всего.

Darafei
04.12.2016
07:19:20
ну, я вот буквально вчера обнулившуюся за лет пять флешку спасал - бинарно читать читается, но фс совсем кусочно жива

Sergey
04.12.2016
07:19:29
Контроллер в фоне в том числе и обновляет содержимое ячеек

Darafei
04.12.2016
07:21:29
собственно, да, read-erase-write требует стирать большими блоками сразу, и для этого приходится вычитывать больше - и это надо делать даже над неменяющимися блоками, для wear leveling и борьбы с утечкой заряда

Darafei
04.12.2016
07:30:42
все

Марк ☢
04.12.2016
07:30:53
?

Darafei
04.12.2016
07:31:17
если ты положишь SSD в ящик, то через пять лет прочтёшь не всё

Sergey
04.12.2016
07:32:15
Отключённый промышленный твердотельник может потерять данные за неделю / Geektimes https://m.geektimes.ru/post/250406/

Марк ☢
04.12.2016
09:04:05
Охчорт. А что с флеш памятью у рейдов ? Там же вобще беда будет

Всмысле которая хранит кэш после внезапного отключения

Марк ☢
04.12.2016
09:05:26
А что там

targitaj
04.12.2016
09:05:29
Там озу и батарейка

Опционально

Google
Марк ☢
04.12.2016
09:05:37
Да ну не везде

Admin
ERROR: S client not available

Марк ☢
04.12.2016
09:05:57
Есть суперкапазиторы при которых он успевает на энергии конденасторов скопировать оперативу на флешку

Darafei
04.12.2016
09:08:04
everything fails

просто проектируйте с расчётом на то, что умрёт совершенно любая часть системы :)

Марк ☢
04.12.2016
09:27:16
Главный прикол в том что иногда умирает так, что не говорит об этом. Тоесть не бэд сектор, а именно неверные данные.

Или слёт фс что намного хуже

Darafei
04.12.2016
09:32:53
вот три последовательных чтения двухгиговой флешки в файлик: kom@junocat ~ % md5sum flash_drive_dynacord_aprol* 8b1cff0a847d1283e317b708eea698f9 flash_drive_dynacord_aprol.img 57794448d48c5fcdf6f840dc6588c2f3 flash_drive_dynacord_aprol2.img ed06651282b7fd10f2662ece7d6dbe1b flash_drive_dynacord_aprol3.img

Марк ☢
04.12.2016
09:33:26
Предлагаешь по хешам узнать где именно разница ?

Alexey
04.12.2016
09:33:37
Хорошая задача, кстати. :)

Марк ☢
04.12.2016
09:33:49
Сделай хексдумп и сделай дифф

И да. Проверь мемчеком память :)

Darafei
04.12.2016
09:34:39
почти мегабайт разницы в разных местах kom@junocat ~ % cmp -l flash_drive_dynacord_aprol2.img flash_drive_dynacord_aprol3.img | wc -l 926293

выглядит примерно так: offset file1 file2 1766455299 202 242 1766455302 303 307 1766455308 75 77 1766455318 233 273 1766455320 220 224 1766455327 214 254

Аггей
04.12.2016
09:51:00
И да. Проверь мемчеком память :)
+1 Тоже как-то на диск грешил... а дело было в RAM

Alexey
04.12.2016
09:51:30
Вы ещё ZFS с битой памятью не ECC не видели. :)

Марк ☢
04.12.2016
09:52:20
+1 Тоже как-то на диск грешил... а дело было в RAM
А у меня еще пижже было. Под нагрузкой сата контроллер выдавал трешачок. А без нагрузки норм

Я тогда просто взорвался дебажить это говно

Паямять ок. Диск ок. А контроллер не ок.

Но ведь по началу не понятно

Google
Darafei
04.12.2016
09:55:10
+1 Тоже как-то на диск грешил... а дело было в RAM
думаю, если вопрос о флешке, лежавшей в ящике пять лет, не читающейся наполовину, и неспособной загрузить убунту с только что залитого на неё образа - то дело не в RAM :)

Darafei
04.12.2016
10:02:56
да

Марк ☢
04.12.2016
10:04:04
Так это похоже наверно не на пропадание от времени а на то что просто флешка убилась от количества перезаписей. Не ?

Darafei
04.12.2016
10:04:53
это похоже на деградацию кремния :)

Марк ☢
04.12.2016
10:05:26
Да. Хотел написать.

Gonchik
05.12.2016
04:55:27
@blkmrkt потом можете сообщить о результатах?

blkmrkt
05.12.2016
04:58:29
обязательно!

Александр
05.12.2016
05:10:35

Страница 178 из 1062