
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

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

Denis
02.12.2016
18:27:46

Аггей
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

Pavel
02.12.2016
18:33:57

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

Alexey
02.12.2016
18:36:14

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

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

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 и борьбы с утечкой заряда

Марк ☢
04.12.2016
07:30:30

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
Охчорт. А что с флеш памятью у рейдов ? Там же вобще беда будет
Всмысле которая хранит кэш после внезапного отключения

targitaj
04.12.2016
09:04:56
А что с ними?

Марк ☢
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

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

Марк ☢
04.12.2016
09:52:20
Я тогда просто взорвался дебажить это говно
Паямять ок. Диск ок. А контроллер не ок.
Но ведь по началу не понятно

Google

Darafei
04.12.2016
09:55:10

Марк ☢
04.12.2016
10:02:20

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