
Terminator
01.08.2018
20:45:00
@meatr будет жить. Поприветствуем!


Nikita
02.08.2018
11:10:17
Всем привет! А я тут опять херни принес.
CREATE TEMPORARY TABLE orders_mobile (
city VARCHAR(64),
order_count int,
order_avg float,
order_date VARCHAR(100)
);
insert into orders_mobile
SELECT
cs.name,
count(sfo.entity_id),
avg(sfo.base_grand_total),
date_format(sfo.created_at, @date_format)
FROM sales_flat_order sfo
JOIN core_store cs on sfo.store_id = cs.store_id
WHERE sfo.status IN ('reserved', 'complete', 'collect')
AND sfo.created_at BETWEEN date_sub(curdate(), INTERVAL 15 WEEK)
AND curdate()
AND sfo.app_source in (@android, @ios)
GROUP BY cs.name, week(sfo.created_at);
SELECT city as 'Город',
MAX(IF(order_date = date_format(date_sub(curdate(), INTERVAL 1 WEEK), @date_format) , order_count, 0)) as '30.07.2018',
MAX(IF(order_date = date_format(date_sub(curdate(), INTERVAL 2 WEEK), @date_format) , order_count, 0)) as '23.07.2018'
.
.
.
FROM orders_mobile
GROUP BY city;
Вообщем пытаюсь достатть количество заказов понедельно.
Как это сделать правильно?


Ilia
02.08.2018
11:15:54
'23.07.2018' -- очень оригинальное имя поля!

Google

Ilia
02.08.2018
11:16:00
ТАк держать!

Виктор
02.08.2018
11:23:25


Ilia
02.08.2018
11:26:44
Всем привет! А я тут опять херни принес.
CREATE TEMPORARY TABLE orders_mobile (
city VARCHAR(64),
order_count int,
order_avg float,
order_date VARCHAR(100)
);
insert into orders_mobile
SELECT
cs.name,
count(sfo.entity_id),
avg(sfo.base_grand_total),
date_format(sfo.created_at, @date_format)
FROM sales_flat_order sfo
JOIN core_store cs on sfo.store_id = cs.store_id
WHERE sfo.status IN ('reserved', 'complete', 'collect')
AND sfo.created_at BETWEEN date_sub(curdate(), INTERVAL 15 WEEK)
AND curdate()
AND sfo.app_source in (@android, @ios)
GROUP BY cs.name, week(sfo.created_at);
SELECT city as 'Город',
MAX(IF(order_date = date_format(date_sub(curdate(), INTERVAL 1 WEEK), @date_format) , order_count, 0)) as '30.07.2018',
MAX(IF(order_date = date_format(date_sub(curdate(), INTERVAL 2 WEEK), @date_format) , order_count, 0)) as '23.07.2018'
.
.
.
FROM orders_mobile
GROUP BY city;
Вообщем пытаюсь достатть количество заказов понедельно.
Я не понял, проблемы -то какие?
Всем привет! А я тут опять херни принес.
CREATE TEMPORARY TABLE orders_mobile (
city VARCHAR(64),
order_count int,
order_avg float,
order_date VARCHAR(100)
);
insert into orders_mobile
SELECT
cs.name,
count(sfo.entity_id),
avg(sfo.base_grand_total),
date_format(sfo.created_at, @date_format)
FROM sales_flat_order sfo
JOIN core_store cs on sfo.store_id = cs.store_id
WHERE sfo.status IN ('reserved', 'complete', 'collect')
AND sfo.created_at BETWEEN date_sub(curdate(), INTERVAL 15 WEEK)
AND curdate()
AND sfo.app_source in (@android, @ios)
GROUP BY cs.name, week(sfo.created_at);
SELECT city as 'Город',
MAX(IF(order_date = date_format(date_sub(curdate(), INTERVAL 1 WEEK), @date_format) , order_count, 0)) as '30.07.2018',
MAX(IF(order_date = date_format(date_sub(curdate(), INTERVAL 2 WEEK), @date_format) , order_count, 0)) as '23.07.2018'
.
.
.
FROM orders_mobile
GROUP BY city;
Вообщем пытаюсь достатть количество заказов понедельно.
Вот я вижу GROUP BY не по фэншую...
SELECT
cs.name,
date_format(sfo.created_at, @date_format)
count(sfo.entity_id),
-- ...
GROUP BY cs.name, week(sfo.created_at);


lost
02.08.2018
11:31:14
Ну немного не по анси
Опять бурчать будешь?

Ilia
02.08.2018
11:33:12
Нельзя быть немного не по анси.
Как нельзя немного быть беременной.
Или по анси, или не по анси.
Проблема-то , что нормальная СУБД его просто на йух пошлёт, а кривая типа Мускля просто выдаст херь какую-то в виде данных.

Anton
02.08.2018
11:49:08
Ну вот что ты обманываешь?)
Мускуль тоже пошлёт, если не выкрутить специальную настроечку под это

Ilia
02.08.2018
11:51:11
Чёта она никогда не выкручена по факту...

Anton
02.08.2018
11:51:34
по дефолту включена уже несколько лет

Vladislav
02.08.2018
11:54:58
Проблема апгрейдов
Конфиг то десятилетний может быть...

Google

Anton
02.08.2018
11:55:35
И легаси тоже. Что хуже конфига)

Vladislav
02.08.2018
11:55:47
Причем тут легаси

Anton
02.08.2018
11:56:03
ну, не включишь ты мод, если у тебя уже по-старому тьма всего написана

Vladislav
02.08.2018
11:56:24
Причем тут это
Я тебе про то, что изменение дефолтных настроек меняется только при новой установке, либо если в ПО она есть по дефолту в обход конфига, обычно, в таких конфигах все закамментировано
Если же в конфиге это прописано сегодня true, то завтра после апгрейда, с вероятностью 99%, оно останется true, хоть дефолтное значение и стало false

Nikita
02.08.2018
12:08:51
@MasterZiv Во, а как групернуть по феншую? Ну и нормально ли я делаю "транспонирование" по этим самым неделям?

Ilia
02.08.2018
12:10:06


Nikita
02.08.2018
12:14:54
@MasterZiv
а транспониую я тогда так, верно?
SELECT city as 'Город Desctop',
MAX(IF(order_date = week(date_sub(curdate(), INTERVAL 1 WEEK)) , order_count, 0)) as '30.07.2018',
MAX(IF(order_date = week(date_sub(curdate(), INTERVAL 2 WEEK)) , order_count, 0)) as '23.07.2018',
MAX(IF(order_date = week(date_sub(curdate(), INTERVAL 3 WEEK)) , order_count, 0)) as '16.07.2018',
MAX(IF(order_date = week(date_sub(curdate(), INTERVAL 4 WEEK)) , order_count, 0)) as '09.07.2018',
MAX(IF(order_date = week(date_sub(curdate(), INTERVAL 5 WEEK)) , order_count, 0)) as '02.07.2018',
MAX(IF(order_date = week(date_sub(curdate(), INTERVAL 6 WEEK)) , order_count, 0)) as '25.06.2018',
MAX(IF(order_date = week(date_sub(curdate(), INTERVAL 7 WEEK)) , order_count, 0)) as '18.06.2018',
MAX(IF(order_date = week(date_sub(curdate(), INTERVAL 8 WEEK)) , order_count, 0)) as '11.06.2018',
MAX(IF(order_date = week(date_sub(curdate(), INTERVAL 9 WEEK)) , order_count, 0)) as '04.06.2018',
MAX(IF(order_date = week(date_sub(curdate(), INTERVAL 10 WEEK)), order_count, 0)) as '28.05.2018',
MAX(IF(order_date = week(date_sub(curdate(), INTERVAL 11 WEEK)), order_count, 0)) as '21.05.2018',
MAX(IF(order_date = week(date_sub(curdate(), INTERVAL 12 WEEK)), order_count, 0)) as '14.05.2018',
MAX(IF(order_date = week(date_sub(curdate(), INTERVAL 13 WEEK)), order_count, 0)) as '07.05.2018',
MAX(IF(order_date = week(date_sub(curdate(), INTERVAL 14 WEEK)), order_count, 0)) as '30.04.2018'
FROM orders_desktop
GROUP BY city;


Ilia
02.08.2018
12:15:38
@MasterZiv
а транспониую я тогда так, верно?
SELECT city as 'Город Desctop',
MAX(IF(order_date = week(date_sub(curdate(), INTERVAL 1 WEEK)) , order_count, 0)) as '30.07.2018',
MAX(IF(order_date = week(date_sub(curdate(), INTERVAL 2 WEEK)) , order_count, 0)) as '23.07.2018',
MAX(IF(order_date = week(date_sub(curdate(), INTERVAL 3 WEEK)) , order_count, 0)) as '16.07.2018',
MAX(IF(order_date = week(date_sub(curdate(), INTERVAL 4 WEEK)) , order_count, 0)) as '09.07.2018',
MAX(IF(order_date = week(date_sub(curdate(), INTERVAL 5 WEEK)) , order_count, 0)) as '02.07.2018',
MAX(IF(order_date = week(date_sub(curdate(), INTERVAL 6 WEEK)) , order_count, 0)) as '25.06.2018',
MAX(IF(order_date = week(date_sub(curdate(), INTERVAL 7 WEEK)) , order_count, 0)) as '18.06.2018',
MAX(IF(order_date = week(date_sub(curdate(), INTERVAL 8 WEEK)) , order_count, 0)) as '11.06.2018',
MAX(IF(order_date = week(date_sub(curdate(), INTERVAL 9 WEEK)) , order_count, 0)) as '04.06.2018',
MAX(IF(order_date = week(date_sub(curdate(), INTERVAL 10 WEEK)), order_count, 0)) as '28.05.2018',
MAX(IF(order_date = week(date_sub(curdate(), INTERVAL 11 WEEK)), order_count, 0)) as '21.05.2018',
MAX(IF(order_date = week(date_sub(curdate(), INTERVAL 12 WEEK)), order_count, 0)) as '14.05.2018',
MAX(IF(order_date = week(date_sub(curdate(), INTERVAL 13 WEEK)), order_count, 0)) as '07.05.2018',
MAX(IF(order_date = week(date_sub(curdate(), INTERVAL 14 WEEK)), order_count, 0)) as '30.04.2018'
FROM orders_desktop
GROUP BY city;
Делай на клиенте


Nikita
02.08.2018
12:15:55
@MasterZiv Нету пока клиента Т_Т
я его еще дня три, четыре дописывать буду.
А отчет горит.

Ilia
02.08.2018
12:16:35
Тем лучше... Его можно сделать так, чтобы транспонирование вообще не нужно было...
Поверни дисплей на 90 градусов -- и ок

Nikita
02.08.2018
12:16:47
Вот и приходится насиловать SQL
@MasterZiv Во, слушай, идильный вариант :D
Глядишь тогда за день напишу

Vladislav
02.08.2018
12:53:33
https://sqream.com/

Роман
02.08.2018
13:37:20
Всем привет, по FireBird подскажет кто?
суть: были базы на одном сервере, переехали на другой, в цоде, в разы мощнее. Может можно как то настройки firebird подкрутить чтобы из прироста мощностей сервака максимум кпд выжать, по сравнению с предыдущим?
т.е. есть какие то значимые настройки которые зависят от мощности железа и оптимизация которых может повлиять на производительность?

Ilia
02.08.2018
13:44:35
Количество ядерь подкрутить и память -> в кэш.
Если конечно это не автоматом настраивается.
Детали не знаю.

ко?TEXHIK
02.08.2018
13:48:10
не помню, задавал ли тут этот вопрос но всё же - postgre 9.6 ведь где-то хранит информацию о текущих транзакциях? Её можно как-то вытащить, зная айди транзакции? Например какие там были запросы или diff? Какую вообще информацию о транзакциях можно вытащить?

Google

Ilia
02.08.2018
13:50:07
WAL
ТРАНЗАКЦИИ != какие были запросы
ТРАНЗАКЦИИ == какие поменялись данные. Было это стало это

ко?TEXHIK
02.08.2018
13:51:04
изменённые данные ~~ запросы

Admin
ERROR: S client not available

Валерия
02.08.2018
13:51:14
неа

ко?TEXHIK
02.08.2018
13:51:28
примерно. по крайней мере апдейтные.
WAL
а он туда пишет до комита или после?

Ilia
02.08.2018
13:52:07
Во время работы транзакции

ко?TEXHIK
02.08.2018
13:56:01

Terminator
02.08.2018
13:56:48
@serg_developer будет жить. Поприветствуем!

ко?TEXHIK
02.08.2018
13:57:33
суть в том, что мне надо понять, какой кусок грёбаной приложухи дерджит транзакцию в идле на протяжении 6 часов

Ilia
02.08.2018
13:57:33
Так всё же светится... Локи с БД посмотри в таблицах системного каталога. Потом увидишь, что этот процесс делал.

ко?TEXHIK
02.08.2018
13:59:27
м... по заблокированным данным вычислять всмысле?

Farid
02.08.2018
14:18:58
Может кому надо
Собеседование Часть1

ко?TEXHIK
02.08.2018
14:19:08

Google

Ilia
02.08.2018
14:19:37
Отруби его, сразу прибегут, чья была транзакция...
:-)

ко?TEXHIK
02.08.2018
14:20:04
ага, щаз. уже пробовал.
лог молчит, никаких ошибок
я вот чую какой-то уродец забыл закрыть её и она просто где-то утекла