
Yuri
26.09.2018
16:55:25
Всем привет!

Николай
26.09.2018
17:01:32
Привет

Andrei
26.09.2018
17:27:15
Парни
вопрос

Google

Andrei
26.09.2018
17:27:25
есть Варшава и Минск
координаты
52.2296756, 21.0122287
53.90453979999999,27.5615244
пытаюсь расстояние прямое посчитать
select ST_Distance(ST_SetSRID(ST_MakePoint(21.0122287,52.2296756), 4326), ST_SetSRID(ST_MakePoint(27.5615244,53.90453979999999), 4326))
возвращает 6.76006244456958
дока говорит
For geography type defaults to return minimum geodesic distance between two geographies in meters.
аааа нет, не внимательный я)

Yaroslav
26.09.2018
17:41:31
Вы могли бы задачу показать — может, Вам бы и так подсказали...

Valery
26.09.2018
17:43:13

Dilame
26.09.2018
17:43:57
Боюсь задач несколько, и они назойливые) Но я попробую
Есть таблица Citizens. У неё есть поля city_id и citizen_name.
Надо посчитать количество citi_id, в которых живёт хотя бы один «Иван»

Yaroslav
26.09.2018
17:44:07

Google

Valery
26.09.2018
17:45:40
я нашел ответ в интернете, потом перепроверил на большой таблице восстановив базу из бэкапа.
When you issue an ALTER TABLE in PostgreSQL it will take an ACCESS EXCLUSIVE lock that blocks everything including SELECT.

Yaroslav
26.09.2018
17:47:11

Dilame
26.09.2018
17:52:24

Yaroslav
26.09.2018
17:54:00

Dilame
26.09.2018
17:54:52

Valery
26.09.2018
18:01:58

sergio
26.09.2018
18:05:40
https://freelansim.ru/tasks/215453
нужны в москву 2 человека

Yaroslav
26.09.2018
18:08:45

Valery
26.09.2018
18:11:08

Yaroslav
26.09.2018
18:16:45

Valery
26.09.2018
18:21:04
Ярослав, спасибо, подумаю. Еще нашел такой вариант. Может кому будет полезно https://jilt.com/blog/migrations-zero-downtime-rails/

Yaroslav
26.09.2018
18:25:50

Valery
26.09.2018
18:29:00

Anton [Mgn, az09@osm]
26.09.2018
18:40:55

Yaroslav
26.09.2018
18:45:27

Anton [Mgn, az09@osm]
26.09.2018
18:46:30
3. структура наших таблиц оказалась не пригодна для решения подобной задачи

Terminator
26.09.2018
18:46:34
@bowzee будет жить. Поприветствуем!

Google

Yaroslav
26.09.2018
18:46:51
> и да, а применял пару раз подход который оказывается называется RBAR, и мне не стыдно
И да, я тоже применял, бывало. ;)
Но для некоторых задач тогда лучше ничего и не было. :(

Dilame
26.09.2018
18:55:31

Yaroslav
26.09.2018
18:55:58
См. HAVING (и подзапросы). Ну или ORDER BY + LIMIT (ну или стандартные FETCH / OFFSET).
Зависит от...

Dilame
26.09.2018
19:22:11

Yaroslav
26.09.2018
19:22:56

Dilame
26.09.2018
19:28:31

Anton [Mgn, az09@osm]
26.09.2018
19:31:06
во подзапросе не хватает id в select-е
или это не пг )

Dilame
26.09.2018
19:31:32

Anton [Mgn, az09@osm]
26.09.2018
19:33:14
можно записать по-другому (CTE) и тогда будет выглядеть чуток получше. но тоже на любителя. а концепция вполне себе

Dilame
26.09.2018
19:34:38

Anton [Mgn, az09@osm]
26.09.2018
19:35:24
промежуток незачем смотреть ?

Yaroslav
26.09.2018
19:35:30

Dilame
26.09.2018
19:36:01

Yaroslav
26.09.2018
19:36:39

Anton [Mgn, az09@osm]
26.09.2018
19:36:58
Очень плохо?
еще я бы для SUM(amount) назначил альяс. потому что явное лучше неявного
у Ярослава в https://t.me/pgsql/100157 как раз с таким ?

Dilame
26.09.2018
19:40:18

Yaroslav
26.09.2018
19:44:09
> Я правильно понимаю, что COUNT(*) в вашем варианте вернёт 2, а не 3?
Отчего бы Вам не попробовать? Всё равно учитесь. ;)
> я просто пытаюсь упростить до базовых концепций, что бы не утруждать вас
Да такие названия запутывают, IMHO. Я ожидаю, что orders — это таблица заказов, и id в ней — PRIMARY KEY.

Google

Dilame
26.09.2018
19:48:30
> Я правильно понимаю, что COUNT(*) в вашем варианте вернёт 2, а не 3?
Отчего бы Вам не попробовать? Всё равно учитесь. ;)
> я просто пытаюсь упростить до базовых концепций, что бы не утруждать вас
Да такие названия запутывают, IMHO. Я ожидаю, что orders — это таблица заказов, и id в ней — PRIMARY KEY.
Я попробовал ? Моё предположение оправдалось.
Получается, что такой вариант не подходит как решение, результат другой выдаёт.
Можно как-нибудь более красиво решить это, чем мой изначальный вариант? Меня просто реально коробит из-за того, что в промежуточном результате дублируется сумма для каждого id
Извиняюсь за не очевидные именования столбцов для примеров. Сложно продумать хорошую структуру для демо


Yaroslav
26.09.2018
19:53:49
> Получается, что такой вариант не подходит как решение, результат другой выдаёт.
Стоп, решение для чего, конкретно?
Что должно считаться? Строки в "orders"?
> Извиняюсь за не очевидные именования столбцов для примеров. Сложно продумать хорошую структуру для демо
Почему Вы не тренируетесь на готовых обучающих базах и задачах? Хоть бы это придумывать не пришлось...

Dilame
26.09.2018
19:57:35

Yaroslav
26.09.2018
19:59:50
> Тот запрос, который я написал выдаёт результат, удовлетворяющий требованиям
Ну так каковы конкретно эти требования? ;)
> Я не тренируюсь сейчас, я решаю конкретную задачу по проекту
Эх... в SQL без базовых знаний легко "дорешаться" т.е. понаписать запросов, которые с виду работают. :(


Dilame
26.09.2018
20:04:58
> Тот запрос, который я написал выдаёт результат, удовлетворяющий требованиям
Ну так каковы конкретно эти требования? ;)
> Я не тренируюсь сейчас, я решаю конкретную задачу по проекту
Эх... в SQL без базовых знаний легко "дорешаться" т.е. понаписать запросов, которые с виду работают. :(
Требования очень объёмные, я поэтому их утрирую, потому что они project-specific.
> Эх... в SQL без базовых знаний легко "дорешаться" т.е. понаписать запросов, которые с виду работают. ?
Ну, базовые-то знания у меня есть, но я трезво их оцениваю, поэтому и пришёл в эту группу, и мучаю вас вопросами)
Я немного модифицирую задачу, что бы вас не смущать именами таблиц и строк. Допустим, это таблица cart.
Так вот, надо посчитать в одном запросе общее кол-во записей в ней + максимальную сумму заказа


Yaroslav
26.09.2018
20:08:08
Требования очень объёмные, я поэтому их утрирую, потому что они project-specific.
> Эх... в SQL без базовых знаний легко "дорешаться" т.е. понаписать запросов, которые с виду работают. ?
Ну, базовые-то знания у меня есть, но я трезво их оцениваю, поэтому и пришёл в эту группу, и мучаю вас вопросами)
Я немного модифицирую задачу, что бы вас не смущать именами таблиц и строк. Допустим, это таблица cart.
Так вот, надо посчитать в одном запросе общее кол-во записей в ней + максимальную сумму заказа
Почему бы Вам не выкладывать свои примеры на каком-нибудь из sqlfiddles?
Картинки как-то "совсем не то". :(
https://dbfiddle.uk/
https://www.db-fiddle.com/
http://sqlfiddle.com

Dilame
26.09.2018
20:17:40

Yaroslav
26.09.2018
20:21:54

Vladimir
26.09.2018
20:23:27
Требования очень объёмные, я поэтому их утрирую, потому что они project-specific.
> Эх... в SQL без базовых знаний легко "дорешаться" т.е. понаписать запросов, которые с виду работают. ?
Ну, базовые-то знания у меня есть, но я трезво их оцениваю, поэтому и пришёл в эту группу, и мучаю вас вопросами)
Я немного модифицирую задачу, что бы вас не смущать именами таблиц и строк. Допустим, это таблица cart.
Так вот, надо посчитать в одном запросе общее кол-во записей в ней + максимальную сумму заказа
А оконные функции можно использовать?

Dilame
26.09.2018
20:23:37

Vladimir
26.09.2018
20:24:18
Да
Тогда, они очень спасают, когда нужно все в одном, но в разных разрезах

Dilame
26.09.2018
20:25:04

Vladimir
26.09.2018
20:26:07

Александр
26.09.2018
20:26:13
Тебе нужно именно кол-во строк или кол-во заказов?

Dilame
26.09.2018
20:26:50

Александр
26.09.2018
20:27:28
А почему именно в одном запросе?

Dilame
26.09.2018
20:28:25

Александр
26.09.2018
20:30:28

Google

Anton [Mgn, az09@osm]
26.09.2018
20:31:51

Dilame
26.09.2018
20:32:10

Vladimir
26.09.2018
20:39:37

Yaroslav
26.09.2018
20:46:45
(шутка) Но иллюстрирует, да.

Vladimir
26.09.2018
20:48:10

Yaroslav
26.09.2018
20:49:54

Vladimir
26.09.2018
20:50:55

Terminator
26.09.2018
21:23:07
@igor_dia будет жить. Поприветствуем!

Igor
26.09.2018
21:24:18
Всем привет! Как в постгресе сделать перемножение строк между собой? в строках находятся вектора, а на выходе хочется получить скалярное произведение одного из векторов на все остальные

Yaroslav
26.09.2018
21:28:41

Igor
26.09.2018
21:29:01
обычные математические вектора. double/float